顶顶顶顶顶顶顶顶顶顶
数据初始化的时候你没有设定大小,nm在那时候都未被初始化。很久没碰C++了不过我觉得应该是这个问题,我记得C++的数组大小要在编译期就确定,你这个是想运行期生成吧,应该是行不通的
你要打印,得把下面两句都放到{}这里面,不然你打印个锤子啊,这个倒不是问题;
字符数组初始化有问题,不能用变量初始化,要用常量,要用常量,要用常量!!!
#include
#include
int main()
{
// printf("Hello, world\n");
int i,j;
int n,m;
scanf("%d%d",&n,&m);
char a[n][m];//必须先给m,n值才能初始化数组
for(int i=0;i<n;i++){
for(j =0;j<m;j++){//写for循环,一定要写花括号
a[i][j] = 'A'+abs(i-j);//'A '应该写成'A'
printf("%c",a[i][j]);
}
}
return 0;
}
#include
#include
int main()
{
// printf("Hello, world\n");
int i,j;
int n,m;
scanf("%d%d",&n,&m);
char a[n][m];//必须先给m,n值才能初始化数组
for(int i=0;i<n;i++){
for(j =0;j<m;j++){//写for循环,一定要写花括号
a[i][j] = 'A'+abs(i-j);//'A '应该写成'A'
printf("%c",a[i][j]);
}
}
return 0;
}
#include
#include
int main()
{
// printf("Hello, world\n");
int i,j;
int n,m;
scanf("%d%d",&n,&m);
char a[n][m];//必须先给m,n值才能初始化数组
for(int i=0;i<n;i++){
for(j =0;j<m;j++){//写for循环,一定要写花括号
a[i][j] = 'A'+abs(i-j);//'A '应该写成'A'
printf("%c",a[i][j]);
}
}
return 0;
}
n,m先赋值,在使用。在创建数组a[n][m]时,n和m的大小需要确定下来。
动态创建数组要这么玩的:
int main()
{
int n,m;
scanf("%d%d",&n,&m);
char* a = new char[n * m];
for(int i=0;i<n;i++){
for(j =0;j<m;j++){
a[i * m + j] = 'A'+abs(i-j);//'A '应该写成'A'
printf("%c",a[i * m + j]);
}
}
delete a;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: