鱼C论坛

 找回密码
 立即注册
查看: 1696|回复: 6

[已解决]程序不知道哪里错误

[复制链接]
发表于 2017-11-2 17:01:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题 题目是一个二维数组,找出该数组中行最大列最小的数字,也可能没有
下面是代码
#include <stdio.h>

#define M 5
#define N 4
int main()
{
        int a[N][M];
        int i,j,k,max,l;
        printf("请给这个数组输入数:");                     
        for (i=0;i<N;i++)
        {
                for (j=0;j<M;j++)
                {
                        scanf("%d",&a[N][M]);    // 每次循环输入一个数
                }
        }
       
    for (i=0;i<N;i++)                              
        {
                max=a[i][0];                 //使每行第一个数值循环赋值max
                for (j=0;j<M;j++)
                {
                        if (max<a[i][j])         //用max去比较每行的数字
                        {
                                max=a[i][j];         //若大于max 则赋值max
                                l=j;                 //每行最大数所在的列赋值L
                        }
                       
                        for (k=0;k<N;k++)
                                if (max<a[k][l])
                                {
                                        printf("这个数是该行最大该列最小a[%d][%d]=%d\n",k,l,max);
                                        break;                  //如果是break跳出
                                }
                                else
                                {
                                        continue;
                                }       
                }
        }

}
最佳答案
2017-11-2 17:30:40
1 scanf输入目标不对
2 后面的逻辑错误
                       for (k=0;k<N;k++)
                                if (max<a[k][l])
                                {
                                        printf("这个数是该行最大该列最小a[%d][%d]=%d\n",k,l,max);
                                        break;                  //如果是break跳出
                                }
后面的else完全多余
这里就输出不对,满足这个条件还不够
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-2 17:28:54 | 显示全部楼层
scanf("%d",&a[i][j]);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-2 17:30:40 | 显示全部楼层    本楼为最佳答案   
1 scanf输入目标不对
2 后面的逻辑错误
                       for (k=0;k<N;k++)
                                if (max<a[k][l])
                                {
                                        printf("这个数是该行最大该列最小a[%d][%d]=%d\n",k,l,max);
                                        break;                  //如果是break跳出
                                }
后面的else完全多余
这里就输出不对,满足这个条件还不够
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-2 17:39:34 | 显示全部楼层
BngThea 发表于 2017-11-2 17:30
1 scanf输入目标不对
2 后面的逻辑错误
                       for (k=0;k

大佬scanf哪里改了 后面还是没搞懂,满足条件不够是说什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-2 17:40:08 | 显示全部楼层
BngThea 发表于 2017-11-2 17:30
1 scanf输入目标不对
2 后面的逻辑错误
                       for (k=0;k

前面的scanf看了那么久竟然没注意到 ,扎心了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-2 18:30:22 From FishC Mobile | 显示全部楼层
解圣洁 发表于 2017-11-2 17:39
大佬scanf哪里改了 后面还是没搞懂,满足条件不够是说什么

你这里只要有一个比他大就输出,不能满足列最小
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-2 20:26:26 | 显示全部楼层
BngThea 发表于 2017-11-2 18:30
你这里只要有一个比他大就输出,不能满足列最小

谢谢大佬指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-28 20:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表