C语言鞍点问题的输入格式

?CaMKII 2020-05-25 11:09:46

题目是要求有输入格式的
能不能用scanf一次读入一行呢?
比如
int a[][4] = { 0 };

scanf("%d", &columnum);

for ( int i = 0; i < columnum; i++)
{
scanf("%d %d %d %d", &a[i][0], &a[i][1], &a[i][2], &a[i][3]);
}
编译可以通过但是输入完之后一直提示说
警告 C6385 从“a”中读取的数据无效: 可读大小为“16”个字节,但可能读取了“64”个字节。
请问是哪里的问题呢?
是只能用两个循环写入数组值吗
...全文
247 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Simple-Soft 2020-05-26
  • 打赏
  • 举报
回复
定义成a[4][4]就会好
qybao 2020-05-26
  • 打赏
  • 举报
回复
int a[][4] = { 0 };改成 int a[4][4] = { 0 };
另外,你这里n=4只是个例子,根据题目要求,n可以到100,所以最好把数组定义为a[100][100]
for example
int main ()
{
int n,i,j,row,col,a[100][100];
scanf("%d", &n); //输入行数
for (i=0; i<n; i++) { //输入矩阵数据
for (j=0; j<n; j++) {
scanf("%d", &a[i][j]);
}
}
for (i=0; i<n; i++) { //遍历每行
for (col=0,j=1; j<n; j++) { //找出每行的最大数所在的列
if (a[i][col]<a[i][j])
col=j;
}
for (row=0,j=1; j<n; j++) { //找出每行最大数所在的列的最小数所在的行
if (a[row][col]>a[j][col])
row=j;
}
if (row==i) //如果最小数所在的行刚好是当前行,则输出结果
printf("%d %d\n", row, col);
}
return 0;
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧