c语言题目(我的代码哪里错了?看图,急): 给定一个N行N列的二维整数矩阵(N<=10),从该矩阵
答案:1 悬赏:50 手机版
解决时间 2021-11-18 00:19
- 提问者网友:动次大次蹦擦擦
- 2021-11-17 04:40
c语言题目(我的代码哪里错了?看图,急): 给定一个N行N列的二维整数矩阵(N<=10),从该矩阵
最佳答案
- 五星知识达人网友:一秋
- 2021-11-17 05:09
看了一下,有三个问题:一是C不允许用变量作数组的声明常量,所以int a[n][n];是非法的;二是C不允许在语句行之间声明变量,所以在scanf后的两行声明也是非法的,不过用C++兼容编译器是可以通过编译的;三是题目中说是“行或列”之和,而代码中好像是“行和列”之和,不知哪个是对的。关键是第一个错误,它得用动态数组才能纠正。我写一个你对照看——
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main(void){
int N,i,j,k,max,*pt,**q,tmp;
printf("Input N(int N>0)...
N=");
scanf("%d",&N);
tmp=N*N;
pt=(int *)malloc(sizeof(int)*tmp);//动态申请空间
q=(int **)malloc(sizeof(int *)*N);
if(pt==NULL || q==NULL){//判断申请是否成功
printf("Application memory failure...
");
exit(0);
}
for(j=i=0;i srand((unsigned)time(NULL));
for(i=0;i for(j=0;j printf("
");
}
for(max=i=0;i for(j=0;j for(tmp=k=0;k if((tmp-=q[i][j])>max)
max=tmp;
}
}
free(q);//释放所申请的空间
free(pt);
printf("The result is %d
",max);//输出
return 0;
}追问谢谢。第一个确实是错的,但在cobeblock编译器上是可以运行的...第二个我问别人,有人说可以啊...题目我写的应该是没问题的,因为他给的例子也是行和列...可惜现在已经提交不了了,不然就能看是不是数组那里错了...
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main(void){
int N,i,j,k,max,*pt,**q,tmp;
printf("Input N(int N>0)...
N=");
scanf("%d",&N);
tmp=N*N;
pt=(int *)malloc(sizeof(int)*tmp);//动态申请空间
q=(int **)malloc(sizeof(int *)*N);
if(pt==NULL || q==NULL){//判断申请是否成功
printf("Application memory failure...
");
exit(0);
}
for(j=i=0;i
for(i=0;i
");
}
for(max=i=0;i
max=tmp;
}
}
free(q);//释放所申请的空间
free(pt);
printf("The result is %d
",max);//输出
return 0;
}追问谢谢。第一个确实是错的,但在cobeblock编译器上是可以运行的...第二个我问别人,有人说可以啊...题目我写的应该是没问题的,因为他给的例子也是行和列...可惜现在已经提交不了了,不然就能看是不是数组那里错了...
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯