题目:输入一个正整数n(/<n<100),再输入n个整数,将最小数与第一个数交换(若最小数就在第一位,不需要交换),输出交换后的n个数。
输入:第一行输入n表示n个数;第二行输入n个数;
输出:输出交换后的n个整数
思考:(1)由题可得,1<n<100,所以设定变量a[100],输入n个数所以再次设定变量i,借助循环进行输入;
int a[100];
int n,i,p,t;
scanf("%d", &n);
for(i=0;i<n;i++)
scanf("%d", &a[i]);
(2)分两种情况:当第一个数为0时,将0设为初值,借助循环比较大小,并将最小数与第一个数进行交换,得到一个数组;当第一个数不为0时,再次借助循环并进行赋值操作得到数组;
p = 0;
for(i=1;i<n;i++)
if(a[p]>a[i])
p = i;
if(p!=0){
t = a[p];
a[p] = a[0];
a[0] = t;
}
(3)最后利用循环输出得到的数组;
for(i=0;i<n;i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
完整代码:
#include<stdio.h>
int main(){
int a[100];
int n,i,p,t;
scanf("%d", &n);
for(i=0;i<n;i++)
scanf("%d", &a[i]);
p = 0;
for(i=1;i<n;i++)
if(a[p]>a[i])
p = i;
if(p!=0){
t = a[p];
a[p] = a[0];
a[0] = t;
}
for(i=0;i<n;i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}