解题思路:
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;
}

别忘点赞哦-.-

点赞(26)
 

0.0分

32 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 11 条评论

KK 3年前 回复TA
#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;
}
满天星 3年前 回复TA
@c num=-1的话,输出是0
c 3年前 回复TA
#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);
}
周星洁 4年前 回复TA
#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);
}
求助啊!
小牛 4年前 回复TA
@飞跃孤星 @dlb05061131 为什么放在比较后边就可以 在前面不行
TTSV 4年前 回复TA
@飞跃孤星 感谢一楼
一条咸鱼 4年前 回复TA
@初生羊犊 反过来可以过滤掉-1,利用while来判断-1的情况
菜农 5年前 回复TA
@飞跃孤星 楼上是正解,一开始我的写法也是这种错误。将scanf放在比较部分的后边就可以了
飞跃孤星 5年前 回复TA
@飞跃孤星 问题找到了,在while循环里输入a后要判断是不是-1,在输入用例:-4 -1 下因为while里没有再进行-1的判断,导致max=-1,直接退出了,改为:while (a != -1) 	{ 		scanf("%d", &a); 		if (a!=-1 && a > max) 			max = a; 	}
飞跃孤星 5年前 回复TA
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%,我实在想不出错哪了,求指导