| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 444 人关注过本帖
标题:高手帮忙看下最后的部分哪块出错了
只看楼主 加入收藏
ting3259298
Rank: 2
等 级:论坛游民
帖 子:15
专家分:17
注 册:2010-10-22
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
高手帮忙看下最后的部分哪块出错了
/*找出3x4数组中的最大值、最小值、根据用户输入来查找指定值,找到输出行、列下标。*/
#include <stdio.h>
int main()
{
    int a[3][4],max,min,row1=0,colum1=0,row2=0,colum2=0,row3=0,colum3=0;
    int i,j,s;
    printf("请输入一个3乘4的数组:\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            scanf("%d",&a[i][j]);
            max=a[0][0],min=a[0][0];
            if(max<a[i][j])
            {
                max=a[i][j];
                row1=i;
                colum1=j;
            }
            if(min>a[i][j])
            {
                min=a[i][j];
                row2=i;
                colum2=j;
            }
        }
    }
    printf("max=%d,row1=%d,colum1=%d\n",max,row1,colum1);
    printf("min=%d,row2=%d,colum2=%d\n",min,row2,colum2);
nihao:
    printf("请输入您所要查找的数字:\n");
    scanf("%d",&s);
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            if (a[i][j]==s)
            {
                row3=i;
                colum3=j;
               
            }
            else
            {
                printf("您的输入有误,请重新输入:\n");
                goto nihao;
            }
        }
    }
    printf("%d的位置在第%d行,第%d列\n",s,row3,colum3);
            return 0;
}                        


题目  :找出3x4数组中的最大值、最小值、根据用户输入来查找指定值,找到输出行、列下标.

[ 本帖最后由 ting3259298 于 2010-12-6 23:52 编辑 ]
搜索更多相关主题的帖子: include 最大值 用户 
2010-12-06 23:33
半片叶zick
Rank: 2
等 级:论坛游民
帖 子:53
专家分:44
注 册:2010-11-30
收藏
得分:0 
题目呢?以后提问,记得给题目,因为每个人的思维是不一样的,所以编程的方式也不一样,所以要给题目。我也刚刚学,题目给出来看看呗,看看我能不能解!
2010-12-06 23:36
ting3259298
Rank: 2
等 级:论坛游民
帖 子:15
专家分:17
注 册:2010-10-22
收藏
得分:0 
回复 2楼 半片叶zick
题目就是这个啊!上面有呀
找出3x4数组中的最大值、最小值、根据用户输入来查找指定值,找到输出行、列下标。
2010-12-06 23:40
flyingcat
Rank: 4
来 自:HDU
等 级:业余侠客
威 望:2
帖 子:55
专家分:230
注 册:2010-7-18
收藏
得分:20 
程序代码:
//LZ想说的几个问题,一个是无法正确输出最大值和最小值,二个是行列总是与实际差1,三个是用户输入的数据只有与a[0][0]相同时才算找到,否则都算没找到
//基本改动如下
#include <stdio.h>
int main()
{
    int a[3][4],max,min,row1=0,colum1=0,row2=0,colum2=0,row3=0,colum3=0;
    int i,j,s;
    printf("请输入一个3乘4的数组:\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            scanf("%d",&a[i][j]);
            if(!i && !j)                      //对max和min的初始化只发生在第一次输入数据,否则都应该只发生比较
                max=a[0][0],min=a[0][0];
            else
            {
                if(max<a[i][j])
                {
                    max=a[i][j];
                    row1=i;
                    colum1=j;
                }
                if(min>a[i][j])
                {
                    min=a[i][j];
                    row2=i;
                    colum2=j;
                }
            }        
        }
    }
    printf("max=%d,row1=%d,colum1=%d\n",max,row1 + 1,colum1 + 1);  //由于循环变量的索引值是0开始,所以输出的时候行列索引值应该+1,这个不是什么问题
    printf("min=%d,row2=%d,colum2=%d\n",min,row2 + 1,colum2 + 1);
nihao:
    printf("请输入您所要查找的数字:\n");
    scanf("%d",&s); 
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            if (a[i][j]==s)
            {
                row3=i;
                colum3=j;
                break;
            }
                                      //原本在这里你用了一个else,试想一下,只在一次查询后(查询了a[0][0])没找到相应的数据
                                        //就直接else指出数据有误并跳转是否合理
        }
    }
    if(i == 3 && j == 4)         //所以说数据有误的条件是,遍历了整个行列仍然没找到这个数据,此时i == 3 j == 4
    {
        printf("您的输入有误,请重新输入:\n");
        goto nihao;
    }
    printf("%d的位置在第%d行,第%d列\n",s,row3 + 1,colum3 + 1);
    return 0;
}       
收到的鲜花
  • ting32592982010-12-07 00:06 送鲜花  3朵  
2010-12-06 23:55
ting3259298
Rank: 2
等 级:论坛游民
帖 子:15
专家分:17
注 册:2010-10-22
收藏
得分:0 
回复 4楼 flyingcat
谢谢您了,讲的很详细,我明白了!
2010-12-07 00:06
快速回复:高手帮忙看下最后的部分哪块出错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012851 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved