2011年3月19日 星期六

EX03陣列程式

修改程式範例: Ch2-1-2.c Ch2-1-2e.c
1.增加成績對調的功能
2.於選單增加成績對調選項
3.詢問欲對調成績的學生學號
4.將輸入的學生學號對應的成績執行對調
   對調方式:temp=scores[std1];
scores[std1]=scores[std2];
scores[std2]=temp;




       #include <stdio.h>
#include <stdlib.h>
/* 主程式 */
int main()   
{  /* 學生成績陣列 */ 
   int scores[11] = {0,76,85,90,67,59,79,82,95,91,65};
   int num,num1;        /* 學號 */
   int grade;           /* 成績 */
   int i, choice;       /* 選項 */ 
   int temp;            /* 暫時(對調) */     
   int doit = 1;
   /* 執行操作的主迴圈 */
   while ( doit ) 
   {
      printf("----選單----\n"); 
      printf("1: 查詢成績\n");
      printf("2: 修改成績\n");      
      printf("3: 顯示成績\n");
      printf("4: 成績對調\n");
      printf("5: 離開作業\n");
      printf("請輸入選項( 1 到 5 ). ==> ");
      scanf("%d", &choice); 
      if (choice < 3 ) 
     {
      printf("請輸入學生學號( 1 到 10 ). ==> ");
      scanf("%d", &num);            /* 讀入學號 */
     }  
      switch( choice ) 
     {
      case 1:  /* 查詢成績 */
      grade = scores[num];       /* 取得成績 */
      printf("學生成績: %d\n", grade);
      break;
      case 2:  /* 修改成績 */
      grade = scores[num];
      printf("原來學生成績: %d\n", grade);
      printf("輸入新成績. ==> ");/* 讀取新成績 */
      scanf("%d", &grade);
      scores[num] = grade;       /* 更新成績 */
      break;
      case 3:  /* 顯示成績 */
      printf("學生成績: \n");
      for ( i = 1; i <= 10; i++ )
      printf("%d:%d ", i, scores[i]);
      printf("\n");
      break; 
      case 4:  /* 成績對調 */
      printf("請輸入第1位學生學號( 1 到 10 ). ==> ");
      scanf("%d", &num);         /* 讀入第1位學生學號 */
      printf("請輸入第2位學生學號( 1 到 10 ). ==> ");
      scanf("%d", &num1);        /* 讀入第2位學生學號 */
      temp = scores[num];  
      scores[num] = scores[num1];
      scores[num1] = temp;
      break;        
      case 5:  /* 結束作業 */ 
      doit = 0;
      break; 
     }  
     }      
      system("PAUSE");
      return 0; 
     }

1 則留言: