m0_73080662 2022-10-29 18:00 采纳率: 83.3%
浏览 178
已结题

任意给定n个整数,求这n个整数序列的和、最小值和最大值。

任意给定n个整数,求这n个整数序列的和、最小值和最大值。

输入格式:
第一行为一个整数n(0<n<100),代表要输入的整数个数;第二行为用空格分隔的n个整数。测试用例保证所有整数及求和结果等均可以用int存储。

输出格式:
只有一行,为三个空格分隔的,依次代表整数序列的和、最大值和最小值。

用代码块功能插入代码,请勿粘贴截图
#include<stdio.h>
int main ()
{  int n=0;
 int i,s ,j;
 scanf("%d",&n);
    int arr[n-1];//
 if (n<=1) 
 {scanf("%d",&s);
     printf("%d %d %d",s,s,s);}
  else
  { for (i=0;i<=(n-1);i++)
 {
     scanf("%d",&s);
  arr[i]=s;
 }

 int sum=0;
 for (i=0;i<=(n-1);i++)
 {sum+=arr[i];
  
 }
 for(i=0;i<=(n-1);i++)
 {for (j=0;j<=(n-j-1);j++)
 { int temp=0;
  if (arr[j]>arr[j+1]) 
  {temp =arr[j];
  arr[j]=arr[j+1];
  arr[j+1]=temp;
  }  
 }    
 } 
 printf("%d %d %d\n",sum,arr[n-1],arr[0]);}

 return 0 ;}


试了很多次测试数据都能达到要求,但是PTA上一直是四十分
,不知道遗漏了什么
采用了冒泡排序

非常感谢

  • 写回答

5条回答 默认 最新

  • X-道至简 2022-10-30 07:10
    关注

    有几个错误

    1. 第6行,int arr[n-1]; 应该改成 int arr[n];
    2. 第23行 {for (j=0;j<=(n-j-1);j++) 这个j<=(n-j-1) 应该改成 j<=(n-i-1)
    3. 上面两个改了后看下,题目说输出是3个空格,也可以改改, 注意第9行和32行同时改
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 赞助了问题酬金15元 10月30日
  • 赞助了问题酬金1元 10月30日
  • 展开全部

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂