| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 541 人关注过本帖
标题:数组里面如何实现输入多个数据?我在做学校的题目,碰到不会的了。
只看楼主 加入收藏
qq445681784
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-6-12
结帖率:0
收藏
已结贴  问题点数:5 回复次数:7 
数组里面如何实现输入多个数据?我在做学校的题目,碰到不会的了。
/*描述
三国里面吕布第一,赵云第二,典韦、关羽和马超分别是第3、第4和第5名,这是按武将的勇猛值和必杀技值的和来排名的,
即武术值=勇猛值+必杀技值,下面给出这5人的勇猛值和必杀值,请你找出吕布的武术值。
输入:
输入数据有多组,每组数据2行,第一行是5人的勇猛值,第二行是5人的必杀技值。勇猛值和必杀值是整数。
输出:
输出吕布的武术值。
样例输入
1 2 3 4 5
1 2 3 4 5
样例输出
10
*/
#include<stdio.h>
int main()
{
    int a[2][5],i,j,s,q,b;
        for(i=0;i<=1;i++)
        for(j=0;j<=4;j++)
     scanf("%d",&a[i][j]);
        {
        s=0,q=0,b=0;
    for(j=0;j<=4;j++)
    {
        if(a[0][j]>q)
        q=a[0][j];
     if(a[1][j]>b)
        b=a[1][j];
    }
    s=q+b;
    printf("%d\n",s);
        }
     return 0;
   
}

注释里的是我的题目,后面是我的程序。然后我提交给OJ,OJ显示的是错误。不知道为什么。。。

我问老师,老师说是缺少多组数据输入功能。请问这个是如何做到的呢?能否给个示范,我对
while (scanf("%d%d%d",&a,&b,&c)!=EOF)
     {   .............................

         ..........................

     }

这个东西怎么使用不太明白。。还请指教。

谢谢。
搜索更多相关主题的帖子: 如何 include 学校 武术 
2013-11-19 17:51
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:3 
s=0,q=0,b=0;
把这个改成
s = 0;
q = 0;
b = 0;
用分号,不要用逗号。

2013-11-19 18:05
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
以下是引用pangshch在2013-11-19 18:05:26的发言:

 s=0,q=0,b=0;
把这个改成
s = 0;
q = 0;
b = 0;
用分号,不要用逗号。

为什么?

重剑无锋,大巧不工
2013-11-19 18:27
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
回复 3楼 beyondyf
版主英明!
    这里没错,   
    小弟不才,除了这里感觉不一样外,其它的好像都对啊,
    还是等高手回答吧。
2013-11-19 18:36
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
1、楼主的代码确实没有处理多组数据的功能,这点你们老师说的没错;

2、其实楼主就单组数据的处理算法本身也是错的,只不过在第一个错误的掩饰下你们老师根本就懒得再看你的代码了。这不怪你们老师,你的代码写的太乱了。

重剑无锋,大巧不工
2013-11-19 18:56
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
回复 5楼 beyondyf
真是一语惊醒梦中人,原来如此, 我懂了,
   被楼主迷惑了,只看了代码,没看题目。
   看来功力不行,还要加油修练,早成正果。
  
2013-11-19 19:08
qq445681784
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-6-12
收藏
得分:0 
回复 5楼 beyondyf
我这个哪里错了呢?。。。

代码的确太乱了。。

如果要改,我该怎么改。

我非常想知道怎么实现多组数据输入。。。
2013-11-20 14:20
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
都结贴了啊, 我以为有人回复了
你的代码问题
 1 不能输入多组数据.
 2 算法有问题,很简单, 勇猛值和必杀值要是有不同.如 1,2,3,4,5和1,2,3,5,4.
   那你的算出来的结果还是10.可是这个是谁的武力值?
   你应该求他们各个人武力值的最大值, 而不是把勇猛值最大的和必杀值最大的相加,(要是两个最大的不是同一个人那结果就不对了).
程序代码:
#include <stdio.h>

#define M 100     // 最多人数

int main()
{
    int a[M];      // 勇猛值
    int b[M];      // 必杀值
    int s = 0;     // 武力值
    int max;       // 最大武力值
    int i, j;

    while (getchar() != EOF) {     // 输入结束符才结束程序, 所以是实现多组数据的一种方法.
        for (i = 0; i < M && getchar() != '\n'; i++)  // 输入勇猛值, 以行为单位, 所以以回车结束
            scanf("%d", &a[i]);
        for (i = 0; i < M && getchar() != '\n'; i++)  // 输入必杀值
            scanf("%d", &b[i]);
        s = 0;                           // 计算前初始化为0
        max = 0;
        for (j = 0; j < i; j++) {    
            s = a[j] + b[j];             // 计算武力值
            if (max < s)                 // 计算最大武力值
                max = s;
        }
        printf("%d\n", max);
    }
    return 0;
}

以上要求武力值只有一个最大值, 题目有第一第二第三, 所以不考虑多个的情况
2013-11-27 08:29
快速回复:数组里面如何实现输入多个数据?我在做学校的题目,碰到不会的了。
数据加载中...
 
   



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

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