- List item
- 首先,无论我代码的好坏与否,博主我都是本着提升自己编程能力的目的入驻博客,这里坦诚一下,博主我呢是大一新生一枚,计算机小白一枚,目前只会一点C语言,所以目前我都是用C来写的;C++并未开始学习,所以博主我水平有限,写的文章大家也就当那么回事,不喜勿喷!
另外,我每次写博客都是秉着如何成为一个优秀的软件工程师的目标,不管有没有人看,我都是为了提升自己的编程水平!希望自己大学4年能坚持写博客,4年后自己的专业水平达到一定的高度,希望我们能一起进步!!
正题:
数据的交换输出
Problem:425
Time Limit:1000ms
Memory Limit:65536K
Description
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。
Input输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
Output对于每组输入数据,输出交换后的数列,每组输出占一行。
Sample Input
4 2 1 3 4
5 5 4 3 2 1
0
Sample Output
1 2 3 4
1 4 3 2 5
分析:这道题呢,思路并不难;首先就是找出这一组数里最小值并标记最小值的位置(方便后面数据的交换),最后呢就是数据交换了
根据分析我写的代码如下:
include <stdio.h>
include <stdlib.h>
int main()
{
int n,num[100],i,min,j;
while(scanf("%d",&n)!=0)
{
int n,num[100],i,min,j;
while(scanf("%d",&n)!=0)
{
if(n==0)
break;
else
{
for(i=0; i<n; i++)
scanf("%d",&num[i]);
min=num[0];j=0;
for(i=1; i<n; i++)
{
if(min>num[i])
{
min=num[i];
j=i;
}
}
num[j]=num[0];
num[0]=min;
for(i=0;i<n-1;i++)
printf("%d “,num[i]);
printf(”%d\n",num[i]);
}
}
return 0;
}