本文目录一览:
- 1、编写一个程序,完成对5个数从大到小的排序,例如输入:1,2,3,4,5,输出的结果为:5,4,3,2,1
- 2、C语言编程求出下面5*5矩阵的所有排列,用数字1-5填满矩阵,每一行每一列不重复,最好能打印出来,急急急
- 3、C语言–怎样实现输入任意几个数排序
- 4、1-10从小到大排序 C语言
编写一个程序,完成对5个数从大到小的排序,例如输入:1,2,3,4,5,输出的结果为:5,4,3,2,1
#includestdio.h
void main()
{
int d[101],n,m,i,j;
printf(“input number:(end with 0)\n”);
n=1;
do
{
scanf(“%d”,d[n]);
n++;
}while(d[n-1]!=0);
for(i=n-2;i0;i–)
for(j=1;ji;j++)
{
if(d[j]d[j+1])
{
m=d[j];
d[j]=d[j+1];
d[j+1]=m;
}
}
for(i=1;in-1;i++)
printf(“%d “,d[i]);
}
输入为0的时候结束输入
C语言编程求出下面5*5矩阵的所有排列,用数字1-5填满矩阵,每一行每一列不重复,最好能打印出来,急急急
#includestdio.h
main()
{
int i,j;
int a[5][5];
for(i=0;i5;i++){
for(j=0;j5;j++)
printf(“%d”,a[i][j]);
printf(“\n”);
}
}
C语言–怎样实现输入任意几个数排序
把循环次数改成你想要的数就可以了。
比如上面你的程序,for语句中的i=9,这个9改成你想要的次数。另一种方法,这个次数也作为一个变量从键盘输入,这样适应性相对来说好一些,不用每次都编译程序。
提醒,如果是大批量的输入数据,用键盘逐个输入数据是比较低效和低准确率的方法,通常采用数据文件(比如一个文本文件)的方式。
你能问出这个问题来,说明你对上面的代码还没有理解透彻,好好学习吧。
—————————————————-
对于lz的补充的回答:
我前面说的:另一种方法,这个次数也作为一个变量从键盘输入,这样适应性相对来说好一些,不用每次都编译程序。
但是有一个问题,就是C不支持动态定义数组。解决方法两种:一、定义一个足够大的数组(但有越界的可能,程序里要做判断和控制)。二、使用动态内存分配,可以从根本上解决此问题。
还有一种折中的办法,就是对排序数定义一个宏,程序中的循环都使用这个宏来控制循环,如果排序数量更改了,虽然需要重新编译程序,但是也很好修改,只要改这个宏的数值就可以了。
1-10从小到大排序 C语言
#includestdio.h
#define N 10
void main()
{
int i,j,min,tem,a[N];
printf(“请输入十个数字:\n”);
for(i=0;iN;i++)
{
printf(“a[%d]=”,i);
scanf(“%d”,a[i]);}
printf(“\n输入的十个数字如下:\n”);
for(i=0;iN;i++)
printf(“%5d”,a[i]);
printf(“\n”);
for(i=0;iN-1;i++)
{
min=i;
for(j=i+1;jN;j++)
if(a[min]a[j]) min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
printf(“排序后:\n”);
for(i=0;iN;i++)
printf(“%5d”,a[i]);
}