首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

哪位帮忙说下,这段程序怎样插入排序,该怎么解决

2012-03-06 
哪位帮忙说下,这段程序怎样插入排序C/C++ code#include stdio.h#define N 20main(){int a[10],s int i,

哪位帮忙说下,这段程序怎样插入排序

C/C++ code
#include <stdio.h>#define N 20main(){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,然后按照以前的顺序输出,怎样改呢?望赐教

[解决办法]
C/C++ code
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]);
[解决办法]
C/C++ code
#include <stdio.h>#define N 20main(){    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;} 

热点排行