C実戦練習問題67

7642 ワード

タイトル:入力配列、最大は最初の要素と交換し、最小は最後の要素と交換し、出力配列.
プログラム分析:譚浩強の本には答えに問題がある.
例:
 1 #include
 2 #include
 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)
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)
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)
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) 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

読んでくれてありがとう.心を込めて悟ってください.勉强好きなあなたに助けてほしい!分かち合うのも1种の楽しみです!!!リレーをお願いします...
クリックして原文を見て、ありがとうございます!