C语言:从键盘上输入10个整数,将其保存到数组中,并按升序排列。

请高手们些简单一点,我是C语言初学者。

源程序代码以及算法解释如下:

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()

{

 int i, j;//定义循环变量

 int M_num;//定义中间变量

 const int N = 10;//定义数组元素个数

 int number[N];//定义两个数组

 printf("请输入10个数组元素:\n");//文字提示

 for (i = 0; i < N; i++)

 {

  scanf("%d", &number[i]);//循环输入数组元素

 }

 for (i = 1; i < 10; i++) {//冒泡排序外循环

  for (j = 0; j < i; j++) {//内循环

   if (number[i] < number[j])//小就置换

   {

    M_num = number[i];

    number[i] = number[j];

    number[j] = M_num;

   }

  }

 }

 for (i = 0; i < 10; i++)//循环输出

  printf("%3d", number[i]);

 printf("\n");

 return 0;

}

程序运行结果如下:



扩展资料:

其他实现方法源程序:

#include<stdio.h>

 void main()

{

int t,i,j,a[10]={1,3,5,7,8.10,2,4,6,9};

for(i=1;i<10;i++)

{

 for(j=0;j<i;j++)

{

 if(a[i]<a[j])

 {

  t=a[i];

  a[i]=a[j];

  a[j]=t;

 }

 }

}

for(i=0;i<10;i++)

 printf("%3d",a[i]);

 printf("\n");

 }

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
/*用选择排序法比较适合初学,比较容易理解 */
#include "stdio.h"
void main()
{
int i,j,a[10],temp;
printf("输入10个整数!\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);

for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
printf("排序后的数组为:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
}本回答被提问者采纳
第2个回答  2011-12-19
#include <stdio.h>
void sort(int* a, int n)
{
int t;
for (int i = 0; i < n; i++)
{
for (int j = i+1; j < n; j++)
{
if(*(a+i) > *(a+j))
{
t = *(a+i);
*(a+i) = *(a+j);
*(a+j) = t;
}
}
}
}

void output(int* a,int n)
{
for (int i = 0; i < n; i++)
printf("%d ",*(a+i));
printf("\n");
}
void input(int* a,int n)
{
for (int i = 0; i < n; i++)
scanf("%d",(a+i));
}
int main()
{
int a[10];
input(a,10);
sort(a,10);
output(a,10);
return 0;
}
第3个回答  2011-12-19
#include<stdio.h>
void main()
{ float a[10],c;
int i,b;
for(i=0;i<10;i++)
scanf("%f",a[i]);
for(i=1;i<10;i++)
for(b=1;b<i;b++)
if(a[i]>a[i-1]) c=a[i-1],a[i-1]=a[i],a[i]=c;
}
相似回答