新手求救

废萌(? 2019-10-12 10:51:22
/*7.
【问题描述】从键盘输入10个数,用选择排序法将其按由大到小的顺序排序;然后在排好
序的数列中插入一个数,使数列保持从大到小的顺序。程序以文件名sy5_7.c存盘。
【输入形式】第一行输入十个数 第二行输入一个数
【输出形式】第一行前十个数的排序 第二行 插入后的排序
【样例输入】
41 5 38 46 34 4 20 86 69 68
59
【样例输出】
86 69 68 46 41 38 34 20 5 4
86 69 68 59 46 41 38 34 20 5 4*/

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
int a[10],i,j,n,m=0;
int s[11];

for(i=0;i<10;i++ ) //输入a数组
{
scanf("%d", &a[i]);
}
scanf("%d", &m);

for (j=0;j<10;j++) //排序
{
for(i=0;i<10;i++)
{
if(a[i]<=a[i+1])
{
n=a[i];
a[i]=a[i+1];
a[i+1]=n;
}
}
}

for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");

s[0]=m;
for(i=0;i<10;i++)
s[i+1]=a[i];
for (j=0;j<11;j++) //排序
{
for(i=0;i<11;i++)
{
if(s[i]<=s[i+1])
{
n=s[i];
s[i]=s[i+1];
s[i+1]=n;
}
}
}

for (i=0;i<11;i++)
printf("%d ",s[i]);
system("pause");
return 0;
}



出现问题如下
输出错误
错误输出:
15775487 86 69 68 46 41 38 34 20 5
15775487 86 69 68 59 46 41 38 34 20 5
期望输出:
86 69 68 46 41 38 34 20 5 4
86 69 68 59 46 41 38 34 20 5 4
输出错误
错误输出:
15775487 10 9 8 7 6 5 4 3 2
15775487 10 9 8 7 6 5 5 4 3 2
期望输出:
10 9 8 7 6 5 4 3 2 1
10 9 8 7 6 5 5 4 3 2 1
输出错误
错误输出:
15775487 99 74 67 54 48 42 34 32 12
15775487 99 74 67 54 48 42 34 32 12 0
期望输出:
99 74 67 54 48 42 34 32 12 -2
99 74 67 54 48 42 34 32 12 -2 -5
输出错误
错误输出:
15775487 10 9 8 7 6 5 4 3 2
15775487 11 10 9 8 7 6 5 4 3 2
期望输出:
10 9 8 7 6 5 4 3 2 1
11 10 9 8 7 6 5 4 3 2 1
...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wowpH 2019-10-13
  • 打赏
  • 举报
回复
搜一下选择排序法。你现在用的这个可能是冒泡排序法,但是写错了。
白色一大坨 2019-10-12
  • 打赏
  • 举报
回复
引用 1 楼 大佬求带 的回复:
大佬救救孩子吧
有需要加 四六五六一七七二七
废萌(? 2019-10-12
  • 打赏
  • 举报
回复
大佬救救孩子吧

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧