输入一个数 n再输入 n 个整数存入数组 a 中,用选择法将 a 中的元素按升序排列,输出排序后数组元素。
#include <stdio.h>
#define MAXN 10
void sort( int a[], int n );
int main()
{
int i, n;
int a[MAXN];
scanf("%d", &n);
for( i=0; i<n; i++ )
scanf("%d", &a[i]);
sort(a, n);
printf("After sorted the array is:");
for( i = 0; i < n; i++ )
printf(" %d", a[i]);
printf("\n");
return 0;
}
运行效果:
扩展资料:
scanf()用法:int scanf(char*format,[argument,...]);
scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘)读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。
其调用格式为:scanf(“<格式化字符串>”,<地址表>);
scanf()函数返回成功赋值的数据项数,出错时则返回EOF;
其控制串由三类字符构成:
1、格式化说明符
2、空白符
3、非空白符
格式化说明符
附加格式说明字符表:
空白字符
空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。
非空白字符
一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
# define N 100
void sort(int *a,int n)
{
int i,j,t,m;
for (i = 0; i < n - 1; i++){
m = i;
for (j = i + 1; j < n; j++)
if ( *(a+j)<*(a+m) )
m = j;
if(i!=m)
{
t=*(a+i);
*(a+i)=*(a+m);
*(a+m)=t;
}
}
}
void main()
{
int i,n,a[N];
printf("请输入数组个数n:");
scanf("%d",&n);
printf("请输入%d个元素:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
for(i=0;i<n;i++)
printf("%-7d",a[i]);
}