不报错但运行不出结果,错在哪里

电脑上不了网,大家将就看下程序图片图片图片

清楚一点的图111111图片

运行结果这样图片说明图片说明图片说明图片说明图片说明图片说明图片

顶顶顶顶顶顶顶顶顶顶

数据初始化的时候你没有设定大小,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;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^