C语言:编写一个包含30个整数的程序,打印最大数和最小数

C语言:编写一个包含30个整数的程序,打印最大数和最小数,c,algorithm,loops,if-statement,for-loop,C,Algorithm,Loops,If Statement,For Loop,写一个程序,将采取5个整数,并打印最大的数字和最小的数字 我试过这个密码 #include <stdio.h> #include <stdlib.h> int main() { int num1, num2, num3, num4, num5; int largest; int smallest; printf ( "\nEnter five integers." ); printf ( "\nAnd I will give y

写一个程序,将采取5个整数,并打印最大的数字和最小的数字

我试过这个密码

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num1, num2, num3, num4, num5;
    int largest;
    int smallest;

    printf ( "\nEnter five integers." );
    printf ( "\nAnd I will give you the smallest and the largest." );

        scanf( "%d%d%d%d%d",  &num1, &num2, &num3, &num4, &num5 );

            if ( num1 >= num2, num3, num4, num5 )
            {
                ( "num1 = largest" );
            }

            if ( num1 <= num2, num3, num4, num5 )
            {
                ( "num1 = smallest" );
            }

            if ( num2 >= num1, num3, num4, num5 )
            {
                ( "num2 = largest" );
            }

            if ( num2 <= num1, num3, num4, num5 )
            {
                ( "num2 = smallest" );
            }

            if ( num3 >= num1, num2, num4, num5 )
            {
                ( "num3 = largest" );
            }

            if ( num3 <= num1, num2, num4, num5 )
            {
                ( "num3 = smallest" );
            }

            if ( num4 >= num1, num2, num3, num5 )
            {
                ( "num4 = largest" );
            }

            if ( num4 <= num1, num2, num3, num5 )
            {
                ( "num4 = smallest" );
            }

            if ( num5 >= num1, num2, num3, num4 )
            {
                ( "num5 = largest" );
            }

            if ( num5 <= num1, num2, num3, num4 )
            {
                ( "num5 = smallest" );
            }

            printf ( "The largest integer is %d.", largest);
            printf ( "The smallest integer is %d.", smallest);

    return 0;
}
#包括
#包括
int main()
{
整数num1、num2、num3、num4、num5;
int最大;
int最小;
printf(“\n输入五个整数。”);
printf(“\n我会给你最小的和最大的。”);
scanf(“%d%d%d%d%d”、&num1、&num2、&num3、&num4、&num5);
如果(num1>=num2、num3、num4、num5)
{
(“num1=最大”);
}
如果(num1=num1,num3,num4,num5)
{
(“num2=最大”);
}
如果(num2=num1,num2,num4,num5)
{
(“num3=最大”);
}
如果(num3=num1,num2,num3,num5)
{
(“num4=最大”);
}
如果(num4=num1,num2,num3,num4)
{
(“num5=最大值”);
}
if(num5
不是比较多个项目的方式。它是有效的C代码,但逗号运算符从左到右执行每段代码,语句的结果是最后一段代码的结果。因此,您的代码基本上变成:

if (num5)
这不是您想要的。这是比较多个项目的方法:

if ( num1 >= num2 && num1 >= num3 && num1 >= num4 && num1 >= num5 )
而且

( "num4 = largest" );
真的什么都不做,我想你是说

largest = num4;
解决此问题的一种更有效的方法是,首先询问用户要比较多少个数字。这不会将您的输入限制为5或30个。然后,您可以使用
for
循环获取输入,边走边比较:

// How many numbers the user wants to input
int numInput = 0;
printf("How many numbers to compare? ");
scanf(" %d", &numInput);

// Initialize
int largest = INT_MIN;
int smallest = INT_MAX;

int input;

// Loop 
for (int i = 0; i < numInput; i++) {
    // Get next number
    printf("Enter #: ");
    scanf(" %d", &input)) {
    // Compare
    if (input > largest) largest = input;
    if (input < smallest) smallest = input;
}
// Print results
printf("Largest: %d, smallest: %d\r\n", largest, smallest);
//用户要输入多少个数字
int numInput=0;
printf(“要比较多少个数字?”);
scanf(“%d”&numInput);
//初始化
int最大=int_最小;
最小整数=最大整数;
int输入;
//环路
for(int i=0;i最大值)最大值=输入;
如果(输入<最小值)最小值=输入;
}
//打印结果
printf(“最大的:%d,最小的:%d\r\n”,最大的,最小的);

注意,需要进行错误检查。例如:您应该检查scanf的返回值,以确保您得到了一个数字。

下面是一个使用数组的示例程序

#include <stdio.h>
int main()
{
    int n[5], i, largest, smallest;

    scanf("%d%d%d%d%d", &n[0], &n[1], &n[2], &n[3], &n[4]);
    smallest = largest = n[0];
    for (i = 1; i < 5; i++) {
        if ( smallest > n[i])
            smallest = n[i];
        if ( largest < n[i] )
            largest = n[i];
    }
    printf("%d\t%d\n", smallest, largest);
}
#include <stdio.h>
int main()
{
    int input, i, largest, smallest;

    scanf("%d", &input);
    smallest = largest = input;
    for (i = 1; i < 5; i++) {
            scanf("%d", &input);
            if ( smallest > input)
                    smallest = input;
            if ( largest < input )
                    largest = input;
    }
    printf("%d\t%d\n", smallest, largest);
}
#包括
int main()
{
int n[5],i,最大,最小;
scanf(“%d%d%d%d%d”、&n[0]、&n[1]、&n[2]、&n[3]、&n[4]);
最小=最大=n[0];
对于(i=1;i<5;i++){
如果(最小值>n[i])
最小值=n[i];
if(最大值
在这样的表达式中

if ( num1 >= num2, num3, num4, num5 )
使用了所谓的逗号运算符,整个表达式的结果对应于值
num5!=0

事实上你问了两个问题:一个是关于如何为这个作业编写程序

取30个整数,打印最大数和最小数

另一个是关于如何为这个作业编写程序

取5个整数,打印最大数和最小数

然后,我将展示一个演示程序,该程序执行这两项任务。:)


您可以自己更正程序中的任何输入错误。:)

这里不使用数组

#include <stdio.h>
int main()
{
    int n[5], i, largest, smallest;

    scanf("%d%d%d%d%d", &n[0], &n[1], &n[2], &n[3], &n[4]);
    smallest = largest = n[0];
    for (i = 1; i < 5; i++) {
        if ( smallest > n[i])
            smallest = n[i];
        if ( largest < n[i] )
            largest = n[i];
    }
    printf("%d\t%d\n", smallest, largest);
}
#include <stdio.h>
int main()
{
    int input, i, largest, smallest;

    scanf("%d", &input);
    smallest = largest = input;
    for (i = 1; i < 5; i++) {
            scanf("%d", &input);
            if ( smallest > input)
                    smallest = input;
            if ( largest < input )
                    largest = input;
    }
    printf("%d\t%d\n", smallest, largest);
}
#包括
int main()
{
int输入,i,最大值,最小值;
scanf(“%d”,输入(&I));
最小=最大=输入;
对于(i=1;i<5;i++){
scanf(“%d”,输入(&I));
如果(最小>输入)
最小=输入;
if(最大<输入)
最大=输入;
}
printf(“%d\t%d\n”,最小,最大);
}

您想使用一个数组并在该数组中找到最小值。此外,if语句中的条件没有任何意义。这种语法应该实现什么:
num1>=num2,num3,num4,num5
?@EliSadoff我们可以在没有数组的情况下执行此操作吗?如果您可以添加一个代码,以便我可以了解如何操作!您好,您可以不使用数组,但没有理由这样做。此外,最好的学习方法是自己编写代码,而不是向他人索要代码。如果你想学习,最好拿一本C语言书读一读。OP从你的帖子中学到了什么?如何完成免费的编码工作-这很有帮助,但请批评他/她的工作,而不只是给出解决方案;)@KevinDTimm是的,我意识到了这一点,并回到了原来的帖子。花了一段时间……谢谢!但我仍然不了解数组。没有数组你能做到吗?@Mohamadhan如果这是最好的方法,IMHO-如果没有数组(或者更好的是,一个链接列表),尝试这么做真的很难看。
#include <stdio.h>
int main()
{
    int input, i, largest, smallest;

    scanf("%d", &input);
    smallest = largest = input;
    for (i = 1; i < 5; i++) {
            scanf("%d", &input);
            if ( smallest > input)
                    smallest = input;
            if ( largest < input )
                    largest = input;
    }
    printf("%d\t%d\n", smallest, largest);
}