1246 - C语言10.16
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。
Input
用空格隔开的10个整数。
Output
输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。
请注意行尾输出换行。
Examples
Input
1 5 2 4 9 0 3 8 7 6
Output
0 5 2 4 6 1 3 8 7 9
Solution C
#include<stdio.h> int main() { int a[11],i,temp,min,max,j,k; for(i=0;i<10;i++) scanf("%d",&a[i]); min=a[0]; max=a[0]; for(i=1;i<10;i++) { if(min>a[i]) min=a[i],j=i; if(max<a[i]) max=a[i],k=i; } temp=a[0]; a[0]=min; a[j]=temp; temp=a[9]; a[9]=max; a[k]=temp; for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); }
Solution C++
#include <stdio.h> int main() { int a[10]; int i, t; int *min_pos, *max_pos; for (i = 0;i < 10;i++) scanf("%d", &a[i]); min_pos = a; for (i = 1;i < 10;i++) if (a[i] < *min_pos) min_pos = a + i; max_pos = a; for (i = 1;i < 10;i++) if (a[i] > *max_pos) max_pos = a + i; t = a[0]; a[0] = *min_pos; *min_pos = t; t = a[9]; a[9] = *max_pos; *max_pos = t; for (i = 0;i < 10;i++) printf("%d ", a[i]); printf("\n"); return 0; }