
正文
c语言对10个数排序函数 c语言对十个数排序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言,用选择法对10个数排序,按正负数分开输出?
选择排序:大循环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;
}
}
相关问答
Q1: C语言如何输入十个数,按从大到小顺序排列!
代码如图所示:
#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;
}
扩展资料
C语言顺序排列题的其他解法
#include stdio.h
int main()
{
int a[10];
int i,j;
int temp;
printf("请输入10个整数:");
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])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排列后顺序为:");
for(i=0;i10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
参考资料:百度百科-c语言
Q2: 用C语言编写一个快速排序算法 输入10个数
1、“快速排序法”使用的是递归原理,下面一个例子来说明“快速排序法”的原理。首先给出一个数组{53,12,98,63,18,72,80,46, 32,21},先找到第一个数--53,把它作为中间值,也就是说,要把53放在一个位置,使得它左边的值比它小,右边的值比它大。{21,12,32, 46,18,53,80,72,63,98},这样一个数组的排序就变成了两个小数组的排序--53左边的数组和53右边的数组,而这两个数组继续用同样的方式继续下去,一直到顺序完全正确。一般来说,冒泡法是程序员最先接触的排序方法,它的优点是原理简单,编程实现容易,但它的缺点就是速度太慢。
2、快速排序代码:
#includestdio.h
void quicksort(int a[],int left,int right)
{
int i,j,temp;
i=left;
j=right;
temp=a[left];
if(leftright)
return;
while(i!=j)
{
while(a[j]=tempji)
j--;
if(ji)
a[i++]=a[j];
while(a[i]=tempji)
i++;
if(ji)
a[j--]=a[i];
}
a[i]=temp;
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}
void main()
{
int a[]={53,12,98,63,18,72,80,46,32,21};
int i;
quicksort(a,0,9);
/*排好序的结果*/
for(i=0;i10;i++)
printf("%4d\n",a[i]);
}
Q3: C语言用选择法对10个整数按从大到小排序。10个整数用scanf函数输入。
#include//标准输入输出函数调用需要此头文件、就是那个printf和scanf函数要用的\x0d\x0avoid main()//主函数\x0d\x0a{int i,j,min,temp,a[10];\x0d\x0aprintf("请输入:\n"); //屏幕输出引号内的字符然后换行\x0d\x0afor(i=1;ia[j]) min=j; //大小数值判断\x0d\x0atemp=a[i]; \x0d\x0aa[i]=a[min]; //a[i]里存放的最小数值\x0d\x0aa[min]=temp;} \x0d\x0aprintf("\n从大到小排列是:\n"); //输出字符\x0d\x0afor(i=10;i=1;i--) //循环输出按大小排列的数据\x0d\x0aprintf("%5d",a[i]);\x0d\x0aprintf("\n");//每输出一个数据换行\x0d\x0a}
Q4: 用C语言编程:用选择法对10个整数排序,10个整数用scanf函数输入
1、打开visual C++ 6.0c语言对10个数排序函数,准备一个空白c语言对10个数排序函数的c语言文件c语言对10个数排序函数,引入头文件c语言对10个数排序函数,在main函数中定义变量和数组:
2、接下来用scanf函数输入的10个数c语言对10个数排序函数,将输入的数存入到变量a中,接着进行比较排序,如果后一个数比前一个数大则利用中间变量t实现俩值互换,最后输出排序的结果:
3、编译运行程序,输入任意的10个数,回车后即可看到排序后的结果。以上就是c语言中选择排序的用法:
Q5: C语言程序 用选择法对十个数排序
#include stdio.h
int main()
{int i,j,min,temp,a[11];
printf("enter data:\n");
for (i=1;i=10;i++)
{printf("a[%d]=",i);
scanf("%d",a[i]);
}
printf("\n");
printf("The orginal numbers:\n");
for (i=1;i=10;i++)
printf("%5d",a[i]);
printf("\n");
for (i=1;i=9;i++)
{min=i;
for (j=i+1;j=10;j++)
if (a[min]a[j]) min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("\nThe sorted numbers:\n");
for (i=1;i=10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
扩展资料:
scanf()用法:int scanf(char*format,[argument,...]);
scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘)读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。
其调用格式为:scanf(“lt;格式化字符串gt;”,lt;地址表gt;);
scanf()函数返回成功赋值的数据项数,出错时则返回EOF;
其控制串由三类字符构成:
1、格式化说明符
2、空白符
3、非空白符
格式化说明符
附加格式说明字符表:
空白字符
空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。
非空白字符
一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
关于c语言对10个数排序函数和c语言对十个数排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







