1246 - C语言10.16
时间限制 : 1 秒
内存限制 : 32 MB
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。
题目输入
用空格隔开的10个整数。
题目输出
输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。
请注意行尾输出换行。
输入/输出样例
输入格式
1 5 2 4 9 0 3 8 7 6
输出格式
0 5 2 4 6 1 3 8 7 9
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"); }
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; }
Java解答
import java.util.Scanner; public class Main{ private static Scanner s = new Scanner(System.in) ; public static void main(String[] args) { int a[] = new int[10] ; for (int i = 0; i < 10; i++) { a[i] = s.nextInt() ; } int temp = 0 ; int k = 0 ; int m = 0 ; for (int i = 0; i < a.length; i++) { if(a[i]>temp){ temp = a[i] ; k = i ; } } for (int i = 0; i < a.length; i++) { if(a[i]<temp){ temp = a[i] ; m = i ; } } temp = a[0] ; a[0] = a[m] ; a[m] = temp ; temp = a[a.length-1] ; a[a.length-1] = a[k] ; a[k] = temp ; for (int i = 0; i < a.length; i++) { System.out.print(a[i]+" "); } System.out.println() ; } }
Python解答
import sys def a(): return [int(i) for i in raw_input().split()] def b(z): p = z.index(min(z)) z[0], z[p] = z[p], z[0] p = z.index(max(z)) z[len(z) - 1], z[p] = z[p], z[len(z) - 1] return z def c(z): for i in z: sys.stdout.write(str(i)+" ") print c(b(a()))