自律+奋斗=成功 2022-10-22 19:41 采纳率: 87.5%
浏览 831
已结题

C语言:输入若干整数,找出其中的最大值和最小值,这段代码哪里错了?

【问题描述】编写一个程序,用户输入若干整数,试找出其中的最大数和最小数。
【输入形式】用户在第一行待输入数据个数,在第二行输入数据。
【输出形式】程序在下一行输出数据的最大值和最小值
【样例输入】
5
89 62 96 74 52
【样例输出】96 52
【样例说明】用户第一次输入的为数据个数,在下一行依次输入数据。输出为5个数中的最大值和最小值,输出时候两个数之间用空格分隔。
#include<stdio.h>
int main()
{ int n,i;
scanf("%d",&n);
int arr[n];
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<n;i++)
{
int t,j=i+1;
if arr[i]<arr[j]
{
t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
printf("%d %d",arr[0],arr[n]);
return 0;
}

  • 写回答

1条回答 默认 最新

  • codeaftercode 2022-10-22 20:18
    关注

    语法错误:第13行 if arr[i]<arr[j] 加上括号,变成 if (arr[i]<arr[j])

    另外,这道题的目标是找到最大值和最小值,并不是排序,所以在for循环中,没必要做那么多交换(关键是还错了),
    只需额外定义两个变量max,min分别记住当前的最大值最小值即可

    #include<stdio.h>
    int main()
    { int n,i;
    scanf("%d",&n);
    int arr[n];
    for(i=0;i<n;i++)
    {
    scanf("%d",&arr[i]);
    }
    int min,max;
    min=arr[0];
    max=arr[0];
    for(i=0;i<n;i++)
    {
        if (min > arr[i]) min = arr[i];
        if (max < arr[i]) max = arr[i];
    }
    printf("%d %d",max,min);
    return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月24日
  • 已采纳回答 10月22日
  • 创建了问题 10月22日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加