题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
程序分析:谭浩强的书中答案有问题。
实例:
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void fun(int *s,int n) 5 { 6 int i; 7 int max=s[0]; 8 int a=0; 9 for(i=0;i<n;i++) 10 { 11 if(s[i]>max) 12 { 13 max=s[i]; 14 a=i; 15 } 16 } 17 s[a]=s[0]; 18 s[0]=max; 19 int j; 20 int min=s[n-1]; 21 int b=n-1; 22 for(j=0;j<n;j++) 23 { 24 if(s[j]<min) 25 { 26 min=s[j]; 27 b=j; 28 } 29 } 30 s[b]=s[n-1]; 31 s[n-1]=min; 32 } 33 34 void printf_s(int *s,int n) 35 { 36 int i; 37 for(i=0;i<n;i++) 38 printf("%d ",s[i]); 39 printf(" "); 40 } 41 42 int main() 43 { 44 int s[20]; 45 int i,n; 46 printf("设置数组长度(<20):"); 47 scanf("%d",&n); 48 printf("输入 %d 个元素: ",n); 49 for(i=0;i<n;i++) 50 scanf("%d",&s[i]); 51 fun(s,n); 52 printf_s(s,n); 53 return 0; 54 }
输出结果为:
设置数组长度(<20):5 输入 5 个元素: 12 123 4 65 21 123 12 21 65 4
感谢你的阅读,请用心感悟!希望可以帮到爱学习的你!!分享也是一种快乐!!!请接力。。。