当前位置: 代码迷 >> 综合 >> NEFU OJ425 数据的交换输出
  详细解决方案

NEFU OJ425 数据的交换输出

热度:26   发布时间:2024-01-25 03:34:42.0
  1. List item
  2. 首先,无论我代码的好坏与否,博主我都是本着提升自己编程能力的目的入驻博客,这里坦诚一下,博主我呢是大一新生一枚,计算机小白一枚,目前只会一点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;
}