/*2.编一C程序,它能对输入的一串整数(不多于1000个,以-9999为结束标记)到数组a中,再对a的元素进行直接插入排序(从小到大排序),输出排序结果和所用关键字比较次数。(输入时,两个相邻的整数用空格隔开)。(注:程序的可执行文件名必须是 e2.exe,存于你的账号或其debug目录下。)*/
#include "stdafx.h"
#include <stdio.h>
#define MAX 1000
void main()
{
int i=1,j,n,t=0,a[MAX];
printf("请输入一个整数串个数必须在[1...%d],以-9999作为结束标记\n",MAX);
do{
scanf("%d",&a[i]);
if(a[i]==-9999)
break;
i++;
}while(9);
n=i-1;
for(i=2;i<=n;i++)
if(a[i]<a[i-1]){
a[0]=a[i];
j=i-1;
do{
a[j+1]=a[j];
j--;
t++;
}while(a[0]<a[j]);
a[j+1]=a[0];
}
printf("整数串排序的结果为:\n");
for(i=1;i<=n;i++)
printf("%-4d",a[i]);
printf("\n");
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载