首页 > 解决方案 > 最小 最大 标记

问题描述

我需要从用户输入的 5 个整数中找到最大和最小标记。正在打印最大值,但没有打印最小值。有任何想法吗?

#include<stdio.h>
int main()
{
    int marks = 0, avg = 0, min = 0, max = 0;

    for (int i = 0; i < 5; i++)
    {
        printf("Enter a mark: ");
        scanf_s("%d", &marks);

        if (marks > max)
        {
            max = marks;
        }
        if (marks < min)
        {
            min = marks;
        }       
    }

    printf("The maximum mark is: %d\n", max);
    printf("The minimum mark is: %d\n", min);
    //printf("The minimum mark is: %d\n", avg);

    getch();
    getch();
}

标签: cmaxmin

解决方案


将 min 的初始值设置为更高的值,例如 10000。因为您的输入值可能都不小于 0。
甚至更好,为您的数据类型使用最大可用值

#include <stdio.h>
#include <limits.h>
int main()
{
    int marks = 0, avg = 0, min = INT_MAX, max = 0;

    for (int i = 0; i < 5; i++)
    {
        printf("Enter a mark: ");
        scanf_s("%d", &marks);

        if (marks > max)
        {
            max = marks;
        }
        if (marks < min)
        {
            min = marks;
        }       
    }

    printf("The maximum mark is: %d\n", max);
    printf("The minimum mark is: %d\n", min);
    //printf("The minimum mark is: %d\n", avg);

    getch();
    getch();
}

推荐阅读