关于#c语言#的问题:输出结果错误#include <stdio.h>

目的:随机生成若干个100以内的整数,求其最大值和最小值,数组实现。
问题:程序无错误,输出结果错误


#include
#include
#include
#include
#include
void main(void)
{
    int n,i,min,max,a[100];
    printf("请输入数据个数:");
    scanf("%d",&n);
    srand((unsigned)time(NULL));
    printf("利用随机数生成函数生成%d个数:",n);
    for(i=0;irand()%100;
        printf("%d,",a[i]);
    }
    for(i=0;i-1;i++)
    {
        min=i;
        if(a[i]<=a[min]) min=i;
    }
    for(i=0;i-1;i++)
    {
        max=i;
        if(a[i]>=a[max]) max=i;
    }
    printf("\n最大值%d,最小值%d",a[max],a[min]);
    system("pause");
}

这两个循环里,都重新赋值了最大或最小的索引,你下面的比较还有啥意义。

把这两个去掉。

img


如有帮助,欢迎点赞采纳哈~

改动处见注释,供参考:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
#include<conio.h>
void main(void)
{
    int n,i,min,max,a[100];
    printf("请输入数据个数:");
    scanf("%d",&n);
    srand((unsigned)time(NULL));
    printf("利用随机数生成函数生成%d个数:",n);
    for(i=0;i<n;i++)
    {
        a[i]=rand()%100;
        printf("%d,",a[i]);
    }
    for(i=0,min=i;i<n;i++) //修改 for(i=0;i<n-1;i++)
    {
        //min=i;              //修改
        if(a[i]<=a[min]) min=i;
    }
    for(i=0,max=i;i<n;i++) //修改 for(i=0;i<n-1;i++)
    {
        //max=i;              //修改
        if(a[i]>=a[max]) max=i;
    }
    printf("\n最大值%d,最小值%d",a[max],a[min]);
    system("pause");
}