重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用数组来存放十个数字,使用“冒泡排序”来实现排序。10个数字需进行9轮扫描,每次扫描时比较相邻的二个数,如它们不符合要求的大小关系,就交换它们的位置。第一轮扫描结束时,最大的数就“沉”到最后。于是第二的范围就少了一个数。再进行第二两栖型、第三轮,…——直到第9轮就完成了。最后输出结果。
创新互联公司专注于徐水网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供徐水营销型网站建设,徐水网站制作、徐水网页设计、徐水网站官网定制、成都微信小程序服务,打造徐水网络公司原创品牌,更为您提供徐水网站排名全网营销落地服务。
#includestdio.h
int
main()
{
int
a[10],i,j,t;
printf("请输入10个整数:\n");
for(i=0;i10;i++)
scanf("%d",a[i]);
for(i=0;i9;i++)
for(j=0;j9-i;j++)
if(a[j]a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf("排序以后的数:\n");
for(i=0;i10;i++)
printf("%d
",a[i]);
printf("\n");
system("pause");
return
0;
}
如果要从大到小排,只要把上面的交换条件
if(a[j]a[j+1])换为
if(a[j]a[j+1])就可以了。
选择排序:大循环i依次取元素和后面所有元素比较,找出其中最值,和当前i的元素交换。一次大循环交换一次。
程序思路:
一、排序函数:根据传参,实现降序升序两种功能。
二、数组输出:根据传参,实现正数和负数输出两种功能。
下面是代码:
#include stdio.h
void px(int nums[],int len,int t);//排序
void showNums(int nums[],int len,int t);//输出
int main()
{
int nums[10]={8,7,-1,2,-5,4,9,-3,-6,1};
printf("原数组:8,7,-1,2,-5,4,9,-3,-6,1\n");
printf("升序排列后:\n");
px(nums,10,1);
printf("|---正数为:");
showNums(nums,10,1);
printf("|---负数为:");
showNums(nums,10,0);
//--------------------------------
printf("降序排列后:\n");
px(nums,10,0);
printf("|---正数为:");
showNums(nums,10,1);
printf("|---负数为:");
showNums(nums,10,0);
}
void showNums(int nums[],int len,int t)//t=1输出正数,t=0输出负数
{
int i;
for(i=0;ilen;i++)
if((t nums[i]0)||(!t nums[i]0))
printf("%d ",nums[i]);
printf("\n");
}
void px(int nums[],int len,int t)//t=1升序,t=0降序
{
int i,j,k,m;
for(i=0;ilen-1;i++)
{
m=nums[i],k=i;
for(j=i+1;jlen;j++)
if((t mnums[j])||(!t mnums[j])) m=nums[j],k=j;
m=nums[i],nums[i]=nums[k],nums[k]=m;
}
}
1、打开软件进入页面,点击文件-新建-文件-C++ Source File。
2、输入预处理命令和主函数:#includestdio.h/*输入输出头文件*/void main()/*空类型:主函数*/。
3、定义变量和数组的数据输入10个数:int a[10],i,t;/*定义变量和数组数据类型为整型*/printf("输入10个整数:");/*输出文字提示*/for(i=0;i=9;i++) /*输入10个数*/scanf("%d",a[i]);。
4、将数值逆置:for(i=0;i5;i++)/*将数值逆置*/{t=a[i];a[i]=a[9-i];a[9-i]=t;}。
5、输出结果并换行:for(i=0;i10;i++)/*输出结果*/printf("%d ",a[i]);printf("\n");/*换行*/。
6、运行看看。
#includelt;stdio.hgt;
int main()
{
int i,j,min,t,a[10]={2,4,8,3,6,9,7,222,64,88};
printf("排序前的序列为:\n");
for(i=0;ilt;10;i++)//输出排序前的序列
{
printf("%5d",alt;igt;);
}
printf("\n");
for(i=0;ilt;9;i++)
{
min=i;//把每次循环的第一个数作为最小值
for(j=i+1;jlt;10;j++)
{
if(a[min]gt;a[j])
min=j;//交换
}
if(min!=i)//说明第一个数不是最小数,所以将a[i+1]~a[10]中最小值与alt;igt;对换
{
t=a[min];
a[min]=alt;igt;;
alt;igt;=t;
}
}
printf("排序后的序列为:\n");
for(i=0;ilt;10;i++)//输出排序后的序列
printf("%5d",alt;igt;);
printf("\n");
return 0;
}
扩展资料:
return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
1、打开visual C++ 6.0,准备一个空白的c语言文件,引入头文件,在main函数中定义变量和数组:
2、接下来用scanf函数输入的10个数,将输入的数存入到变量a中,接着进行比较排序,如果后一个数比前一个数大则利用中间变量t实现俩值互换,最后输出排序的结果:
3、编译运行程序,输入任意的10个数,回车后即可看到排序后的结果。以上就是c语言中选择排序的用法:
用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:
#includestdio.h
int main()
{
int i,j,a[10],t;
printf("输入数");
for (i = 0; i 10; i++)
scanf("%d",a[i]);
for (i = 0; i 10; i++)
{
for (j = i + 1; j 10;j++)
if (a[i] a[j]){
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
printf("从大到小");
for (i = 0; i 10; i++)
printf("%2d", a[i]);
return 0;
}
扩展资料:
代码还可以设计,如下:
#includestdio.h
int main()
{
int a[10],i,j,t;//定义数组;
for(i=0;i10;i++){
scanf("%d",a[i]);//给数组赋值;
}
for(i=0;i9;i++)//10个数,进行9轮比较;
for(j=0;j10-i;j++){//第一个数比较9次,依次递减;
if(a[j]a[j+1]) {//交换值;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i10;i++){
printf("%d\n",a[i]);//输出数组的值;
}
return 0;
}
}
printf("the sorted numbers:\n");
for(i=0;i10;i++)
printf(" %d",a[i]);
printf("\n");
}
参考资料:百度百科-printf