69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#define N 20
main()
{int a[10],s;
int i,j,temp;
printf("请输入学生成绩\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=1;j<10;j++) /*冒泡法排序: 如果有n个数,则需要进行n-1趟比较;
第j趟比较中要进行n-j 次两两比较 */
for(i=0;i<10-j;i++)
if(a[i]<a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
printf("请输入另外一个数\n");
scanf("%d\n",&s);
for(i=0;i<N;i++)
{ if( s>a[i]&& s<a[i+1])
{ for(j=N-2;j>=i+1;j--)
a[j+1]=a[j];
}
a[i+1]=s;
}
for(i=0;i<N;i++)
printf("%d\n",a[i]);
}
要实现插入一个数s,然后按照以前的顺序输出,怎样改呢?望赐教
#include <stdio.h>
#define N 20
main()
{
int a[N]={0},s=0;
int i,j,temp;
printf("请输入学生成绩\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=1;j<10;j++) /*冒泡法排序: 如果有n个数,则需要进行n-1趟比较;
第j趟比较中要进行n-j 次两两比较 */
for(i=0;i<10-j;i++)
if(a[i]<a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
printf("请输入另外一个数\n");
fflush(stdin);
scanf("%d",&s);
j=10;
while(j > 0 && s > a[j])
{
a[j]=a[j-1];
j--;
}
a[j]=s;
for(i=0;i<11;i++)
printf("%d\n",a[i]);
return 0;
}
scanf("%d\n",&s);
j=10;
while(j > 0 && s > a[j])
{
a[j]=a[j-1];
j--;
}
a[j]=s;
for(i=0;i<11;i++)
printf("%d\n",a[i]);