程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 基礎練習 字母圖形

基礎練習 字母圖形

編輯:關於C++
基礎練習 字母圖形 時間限制:1.0s 內存限制:256.0MB 問題描述

利用字母可以組成一些美麗的圖形,下面給出了一個例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

這是一個5行7列的圖形,請找出這個圖形的規律,並輸出一個n行m列的圖形。

輸入格式 輸入一行,包含兩個整數n和m,分別表示你要輸出的圖形的行數的列數。 輸出格式 輸出n行,每個m個字符,為你的圖形。 樣例輸入 5 7 樣例輸出 ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC 數據規模與約定 1 <= n, m <= 26。 錯誤原因 通過觀察題目,我以為是一個字符串的循環呢,以為一直是這幾個字母改變位置而已。 錯誤代碼
#include
#include
char a[30][30];
int main()
{
	int n,m;
	int i,j,k;
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		memset(a,0,sizeof(a));
		for(i=1;i<=m;i++)
		    a[1][i]='A'+i-1;
		for(i=2;i<=n;i++)
		{
			if(i%m==0)
			{
				for(j=m,k=1;j>=1;j--,k++)
				    a[i][k]=a[1][j];
			}
			else
			{
			    for(j=i%m,k=1;j>1;j--,k++)
			        a[i][k]=a[1][j];
			    for(j=1;k<=m;k++,j++)
			        a[i][k]=a[1][j];
			}
		}
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=m;j++)
			    printf("%c",a[i][j]);
			printf("\n");
		}
	}
	return 0;
} 
錯誤輸出實例 例:6 5 錯誤輸出結果 ABCDE BABCD CBABC DCBAB EDCBA ABCDE 正確輸出結果 ABCDE BABCD CBABC DCBAB EDCBA FEDCB //正確的輸出應該是這樣 正確代碼www.2cto.com
#include
char a[30][30];
int main()
{
	int n,m;
	int i,j,k,l;
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=m;j++)
			{
				k=j-i;
				if(k<0)
				    k=-k;
				a[i][j]='A'+k;//字母的序號與兩個坐標的差的絕對值有關。
			}
		}
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=m;j++)
			    printf("%c",a[i][j]);
			printf("\n");
		}
	}
	return 0;
}
















  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved