c - 寻找最大和第二大数

标签 c

Write a program that inputs a series of 10 numbers and find the 2 largest values of the 10 numbers? (Only using if and loop)

谁能帮我解决这个问题?。我试过了,但这是不对的。它不能列出第二大数字。任何帮助将不胜感激。

  #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;
}

最佳答案

当你得到一个新的最大数时,旧的最大数变成第二大数。因此,您只需要对最大数进行一次检查,然后进行两次分配。

有点像

if (number > largest)
{
    largest2 = largest;
    largest = number;
}

您仍然需要检查大于 largest2 的数字。

关于c - 寻找最大和第二大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38396018/

相关文章:

c - 删除 '//' &/*...*/c 文件中的注释以使用 c 获取预处理文件

c - GCC 兼容多种架构的最高指令集

类似于R的C概率库

c - boolean 函数中调用的 if 语句不断返回 false

c - 在C中初始化多维数组

c - OpenMP 输出错误答案

比较两个结构文件(Linux 内核)

c - C语言中任意非线性方程的辛普森1/3积分法积分?

c - 使用 ffmpeg 将文件从一种格式转换为另一种格式

C: 用 fgets() 替换 gets() 时出错