如何用c++/c编写一个边输入数据,边对数据进行插入排序的程序?
要求插入排序的操作在函数中进行。输入的整数个数不限,最后输入0结束,同时输出已排好序的数组。如:数组开始时没有数据,输入5后,数组内容为5,再输入7后,数组内容为5,7,...
要求插入排序的操作在函数中进行。输入的整数个数不限,最后输入0结束,同时输出已排好序的数组。如:数组开始时没有数据,输入5后,数组内容为5,再输入7后,数组内容为5,7,再输入3后,数组内容为3,5,7等,最后输入0后,输入结束,输出排好序的数组元素。
展开
1个回答
展开全部
#include<stdio.h>
#include<windows.h>
void paixu(int a[],int n)
{ n=n-1;
int i,j,x;
for(i=1;i<n;i++)
for(j=0;j<=n-i;j++)
{
if(a[j]>a[j+1]){ x=a[j];a[j]=a[j+1];a[j+1]=a[j];}
}
}
void main()
{
int i,a[100],n=0,m,q=1;
while(1)
{
printf("数据进行插入排序的程序\n");
printf("***********1、插入数据*********\n");
printf("***********2、数据排序*********\n");
printf("***********3、显示数据*********\n");
printf("***********4、退出程序*********\n");
printf("************请输入选项*********\n");
scanf("%d",m);
switch(m)
{
case(1):
printf("当数据输入完毕以0结束\n");
while(q)
{
scanf("%d",a[n++]);
if(a[n]==0) q=0;
}break;
case(2):paixu(a,n);break;
case(3):for(i=0;i<n-1;i++)
printf("%d\n",a[i]) ;break;
case(4):exit(0);
}
}
}
#include<windows.h>
void paixu(int a[],int n)
{ n=n-1;
int i,j,x;
for(i=1;i<n;i++)
for(j=0;j<=n-i;j++)
{
if(a[j]>a[j+1]){ x=a[j];a[j]=a[j+1];a[j+1]=a[j];}
}
}
void main()
{
int i,a[100],n=0,m,q=1;
while(1)
{
printf("数据进行插入排序的程序\n");
printf("***********1、插入数据*********\n");
printf("***********2、数据排序*********\n");
printf("***********3、显示数据*********\n");
printf("***********4、退出程序*********\n");
printf("************请输入选项*********\n");
scanf("%d",m);
switch(m)
{
case(1):
printf("当数据输入完毕以0结束\n");
while(q)
{
scanf("%d",a[n++]);
if(a[n]==0) q=0;
}break;
case(2):paixu(a,n);break;
case(3):for(i=0;i<n-1;i++)
printf("%d\n",a[i]) ;break;
case(4):exit(0);
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询