| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2124 人关注过本帖
标题:初学者,遇到问题请教。(输入十个数,求最大数并输出)
只看楼主 加入收藏
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
收藏
得分:0 
4楼的,其实不严谨,如果输入的数全是负数,那就会出错。

勤能补拙,熟能生巧!
2011-02-16 10:56
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用点线面在2011-2-16 09:47:48的发言:


#include <stdio.h>

int main (void) {

        int a[10],i,max=0;

        printf ("Enter 10 number in array:\n");

        for(i=0;i<10;i++) {

                scanf ("%i",&a);     //应该是scanf ("%d",&a);

                if(a>max) { max=a; } //这里判断max

        }

        printf ("Max number is %i",max);

        return 0;

}#include <stdio.h>

int main (void) {

        int a,i,max=0;

        printf ("Enter 10 number in array:\n");

        for(i=0;i<10;i++) {

                scanf ("%d",&a);

                if(a>max) { max=a; } //这里判断max

        }

        printf ("Max number is %i",max);

        return 0;

}
可以不用数组就能解决


嗯, 不是刚学完数组嘛, 嘿嘿

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-16 10:57
zyx609239305
Rank: 2
来 自:大连
等 级:论坛游民
帖 子:30
专家分:32
注 册:2010-10-1
收藏
得分:1 
4楼没问题啊
2011-02-16 10:58
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
收藏
得分:0 
3楼的那个好像跟我的一样,不过我还太懂%i的意思,讲下行不?

勤能补拙,熟能生巧!
2011-02-16 10:58
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
收藏
得分:0 
要经过两次循环才会严谨,就只有一次循环总得先初始化最大值,那万一输入的数没一个大于初始化的那个值呢?

勤能补拙,熟能生巧!
2011-02-16 11:01
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用huangapple在2011-2-16 10:56:24的发言:

4楼的,其实不严谨,如果输入的数全是负数,那就会出错。

嗯, 我想那是开始把max初始化成0的缘故。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-16 11:03
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
收藏
得分:0 
原来一次循环也可以
#include <stdio.h>

int main(void)
{
    float a;
    float max;
    int i;
   
    scanf("%f", &a);
    max = a;

    for(i = 0; i < 9; ++i)
    {
        scanf("%f", &a);
        if(a > max)
            max = a;
    }

    printf("max = %g\n", max);

    return 0;
}

勤能补拙,熟能生巧!
2011-02-16 11:07
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用huangapple在2011-2-16 11:01:08的发言:

要经过两次循环才会严谨,就只有一次循环总得先初始化最大值,那万一输入的数没一个大于初始化的那个值呢?

老大言之有理, 这样就可以处理全负的数字啦。

程序代码:
#include <stdio.h>

int main (void) {

        int a[10],i,max;

        printf ("Enter 10 number in array:\n");

        for(i=0;i<10;i++) {

                scanf ("%i",&a[i]);

        }

        max=a[0];//当全部数值存入数组以后, 假定第一个元素是最大的。

        for(i=0;i<10;i++) {

                if(a[i]>max) { max=a[i]; }

        }

        printf ("Max number is %i",max);

        return 0;

}



test:


root@yeah ~
$ ./max
Enter 10 number in array:
-123
-1234
-12
-1
-2345
-345
-345
-423
-78
-98
Max number is -1
root@yeah ~
$ ./max
Enter 10 number in array:
234
-123
1231
0
32
-432
-234
-23
234
23
Max number is 1231
root@yeah ~
$

[ 本帖最后由 ansic 于 2011-2-16 11:10 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-16 11:09
huangapple
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:545
专家分:1790
注 册:2010-12-30
收藏
得分:0 
你是用什么编译器,%i是什么意思

勤能补拙,熟能生巧!
2011-02-16 11:13
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用huangapple在2011-2-16 11:13:30的发言:

你是用什么编译器,%i是什么意思

gcc,c99

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-16 11:15
快速回复:初学者,遇到问题请教。(输入十个数,求最大数并输出)
数据加载中...
 
   



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

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