【发布时间】:2016-07-15 12:21:44
【问题描述】:
编写一个程序,输入一系列 10 个数字并找出这 10 个数字中的 2 个最大值? (仅使用 if 和循环)
谁能帮我解决这个问题?我试过了,但这是不对的。它不能列出第二大的数字。任何帮助将不胜感激。
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int counter = 0, number, largest = 0,largest2=0;
for (counter = 1; counter <= 10; counter++) {
printf("Enter number (%d): ", counter);
scanf_s("%d", &number);
if (number > largest)
{
largest = number;
}
else
{
if (number > largest2)
largest2 = number;
}
}
printf("The largest number is %d\n", largest);
printf("The second largest number is %d\n", largest2);
system("pause");
return 0;
}
【问题讨论】:
-
这是作业吗?呵呵
-
顺便说一句,您应该使用“INT_MIN”作为最大的初始化 - 如果我写 -10,-11,.. 作为输入怎么办?从零开始,您将获得最大的 0,但事实并非如此 :) 查看常量,例如。那里有en.wikibooks.org/wiki/C_Programming/C_Reference/limits.h
-
您希望如何处理重复值?例如,您期望输入“9 9 10 10 10 10 10 10 10 10 10”的输出是什么?根据定义,第二大值是 9 或 10。
-
对不起,我忘了。 "每个数字只输入一次"
-
没错。哈哈@Vini.g.fer
标签: c