原题链接:C语言训练-最大数问题
解题思路:
1.输入一串数字,输出其中最大的数字,我们定义一个存最大值的变量max,把输入的数中的第一个数分离出来输入,让首先让max等于这个数;
2.之后每次输入一个数让它和max比较,比max大,则更新max;
3.最后所有数字输完后,输出max;
注意事项:
若只输入-1,不能把-1输出出来,所以在整个求最大数的过程外面,需要加一个判断,如果输入的第一个就是-1的话,直接结束;
参考代码:
c:
#include <stdio.h>
int main()
{
    int num, max;
    scanf( "%d", &num );
    if ( num != -1 )
    {
        max = num;
        while ( num != -1 )
        {
            if ( num > max )
                max = num;
            scanf( "%d", &num );
        }
        printf( "%d", max );
    }
    return 0;
}c++:
#include<iostream>
using namespace std;
int main()
{
    int num, max;
    cin>>num;
    if ( num != -1 )
    {
        max = num;
        while ( num != -1 )
        {
            if ( num > max )
                max = num;
            cin>>num;
        }
        cout<<max;
    }
    return 0;
}别忘点赞哦-.-
0.0分
32 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
 
#include<stdio.h> int main() { int num,max=0; scanf("%d",&num); max=num; while(num!=-1) { scanf("%d",&num); if((num!=-1)&&num>max) { max=num; } } printf("%d",max); return 0; }#include<stdio.h> void main() { int num,max=0; while((scanf("%d",&num))!=EOF&&num!=-1) { if(num>max) { max=num; } scanf("%d",&num); } printf("%d",max); }#include <stdio.h> void main() { int a[99], max; for (int i = 0; i < 9; i++) { scanf("%d", &a[i]); if (i == -1) { break; } } max = a[1]; for (int i = 0; i < 9; i++) { if (a[i + 1] > max) { max = a[i + 1]; } } printf("%d", max); } 求助啊!@飞跃孤星 问题找到了,在while循环里输入a后要判断是不是-1,在输入用例:-4 -1 下因为while里没有再进行-1的判断,导致max=-1,直接退出了,改为:while (a != -1) { scanf("%d", &a); if (a!=-1 && a > max) max = a; }int main() { int a = 0, max; scanf("%d", &a); max = a; while (a != -1) { scanf("%d", &a); if (a > max) max = a; } if(max!=-1) printf("%d", max); return 0; } 请问哪种情况下会出错,系统判定错误14%,我实在想不出错哪了,求指导