20251期《C语言程序设计B》专项训练01-数组01部分-程序P706.C

27 阅读1分钟

题面

/*
编写一程序P706.C实现以下功能
  输入任意10个整数,对这10个整数从小到大排序并输出。编程可用素材:
printf("Please input 10 number:\n")
printf("%5d");
  程序的运行效果应类似地如图1所示,图1中的10 34 546 234 678 2 6 24 67 23是从键盘输入的内容。
Please input 10 number:
10 34 546 234 678 2 6 24 67 23
2    6   10   23   24   34   67  234  546  678
*/

解答

#include<stdio.h>

int main(void)
{
	int data[10],i,j,k,tmp;
	printf("Please input 10 number:\n");
	for(i=0;i<10;i++)
	{
		scanf("%d",&data[i]);
	}
	// 使用选择排序:定标,交换
	for(i=0;i<10;i++)
	{
		k=i;
		for(j=i+1;j<10;j++)
		{
			if(data[j]<data[k])
			{
				k=j;
			}
		}
		if(k!=i)
		{
			tmp = data[k];
			data[k]=data[i];
			data[i]=tmp;
		}
	}
	
	for(i=0;i<10;i++)
	{
		printf("%5d",data[i]);		
	}
	
	return 0;
}

知识点

  1. 固定个数的数据输入,用数组来组织
  2. 对数组数据进行排序,这里使用的选择排序算法
  3. 选择排序重点:定标,交换
  4. 注意输出数据的格式宽度