输入若干个整数,以-1标记输入结束,输出其中的最大数

题目描述

输入若干个整数,以-1标记输入结束。输出其中的最大数

输入

若干个整数。(以-1标记输入结束)

输出

其中的最大数

样例输入

1 2 5 7 8 6 1 -6 -1

样例输出

8
1.使用数组
这种方法可以进行求解,但是如果输入的是-1的话测试会不通过,忽视了-1的情况,但是可以求出处第一个输入的不是-1之外的所有值

完整代码

#include 
int main()
{
	int a[100];
	int max; 
	int n = 0;
	for (int i = 0; i < 100; i++)
	{
		scanf("%d", &a[i]);
		max = a[0];  //把第一个数赋最大值
		n++;
		if (a[i] == -1)
		{
			break;
			return 0; //终止循环条件,遇到-1就退出
		}
	}
	for (int j = 0; j < n - 1; j++) // j=n-1 表示 -1不参与比较大小
	{
		if (a[j] > max)
		{
			max = a[j];
		}
	}
	printf("%d", max);
	return 0;
}

2.利用while循环和if语句配合使用实现
这是在看完题解后知晓的一种方法,此方法是参考自:https://blog.dotcpp.com/a/3932,很受启发

完整代码

#include 
int main()
{
	int num, max;
	scanf("%d", &num);
	if (num != -1) //如果第一个输入的数字不是-1,把第一个值赋值为max   如果输入的数为-1,返回值为0
	{
		max = num;
		while (num != -1) //不是-1就继续输入,如果输入的值大于max,就继续赋给max
		{
			// scanf("%d", &num);
			if (num > max)
			{
				max = num;
			}
			scanf("%d", &num); //先判断再进行输入,过滤掉-1的情况
		}
		printf("%d", max); //输出max
	}
	return 0;
}

你可能感兴趣的:(c/c++,动态规划,算法,c语言)