m0_62991612 2021-10-15 21:52 采纳率: 100%
浏览 7
已结题

求帮看看这个冒泡程序怎么改,执行结果不对😭😭

#include<stdio.h>
int main()
{
double a[N]={3.14,4.28,6.57,7.00,1,2.32,8.97,9.66};
int temp,i,j;
printf("排序前结果为:%1.2f\n",a[N]);
for (i=0;i<N-1;i++)
for (j=0;j<N-i-1;j++)
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
printf("排序后结果为:");
for(i=0;i<N;i++)
printf("%1.2f",a[i]);
}

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2021-10-15 21:55
    关注

    N没有定义。估计不是8。如果N大于8,那么你要重新定义一个变量=8,然后用这个变量替代所有for循环中的N
    你定义了一个较大的数组,但实际数组只有8个元素。你循环的时候只能针对这8个元素,而不是整个数组

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月15日

悬赏问题

  • ¥15 elasticsearch
  • ¥30 python ttk 获取下拉框问题
  • ¥15 uniapp的uni-datetime-picker组件在ios端不适配
  • ¥15 前端 uniapp App端在离线状态如何使用modbus 连接手机蓝牙进行读写操控机器?
  • ¥15 SQL语句根据字段自动生成行
  • ¥500 “掌声响起来”软件(不确定性人工智能)
  • ¥500 我要找大模型一体机产品手册和应用案例
  • ¥60 用r语言进行数据分析
  • ¥20 关于游戏c++语言代码问题
  • ¥15 如何制作永久二维码,最好是微信也可以扫开的。(相关搜索:管理系统)