#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(“<格式化字符串>”,<地址表>);
scanf()函数返回成功赋值的数据项数,出错时则返回EOF;
其控制串由三类字符构成:
1、格式化说明符
2、空白符
3、非空白符
格式化说明符
附加格式说明字符表:
空白字符
空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。
非空白字符
一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
/*question2:用选择法对10个整数排序*/
#include <stdio.h>
int main()
{
int a[11], i, j, temp;
printf("Enter data:\n");
for (i = 1; i < 11; i++)
{
printf("a[%d]=", i);
scanf("%d", &a[i]);
}
printf("\n");
printf("The orginal number:\n");
for (i = 1; i < 11; i++)
{
printf("%5d", a[i]);
}
for (i = 1; i < 10; i++)
{
for (j = i + 1; j < 11; j++)
{
if (a[i] > a[j])
{
temp = a[i]; //书上此处用了中间变量min,但其实用不到
a[i] = a[j];
a[j] = temp;
}
}
}
printf("\nThe sorted numbers:\n");
for (i = 1; i < 11; i++)
{
printf("%5d", a[i]);
}
printf("\n");
return 0;
}
本文我们主要讲解选择法排序,首先讲解了选择法排序的概念,然后结合具体的例子为大家讲解了如何使用选择法排序找到数组中的最大数,最后给大家留了两道题,分别是冒泡排序和选择法排序进行数组排序。