Ex03.陣列程式
修改程式範例: Ch2-1-2.c 為Ch2-1-2e.c
1.增加成績對調的功能
2.於選單增加”成績對調”選項
3.詢問欲對調成績的學生學號
4.將輸入的學生學號對應的成績執行對調
對調方式:
temp=scores[std1];
scores[std1]=scores[std2];
scores[std2]=temp;
ANS:
#include <stdio.h>
#include <stdlib.h>
/* 主程式 */
int main() {
/* 學生成績陣列 */
int scores[10] = {76,85,90,67,59,79,82,95,91,65};
int num; /* 學號 */
int grade; /* 成績 */
int i, choice; /* 選項 */
int n,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 < 4 ) {
printf("請輸入學生學號( 0 到 9). ==> ");
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: /* 成績對調 */
grade = scores[num]; /* 取得成績 */
printf("請輸入欲對調學生之學號. ==> ");
scanf("%d", &n); /* 讀入欲對調學生之學號 */
temp = scores[num];
scores[num] = scores[n];
scores[n] = temp;
break;
case 4: /* 顯示成績 */
printf("學生成績: \n");
for ( i = 0; i < 10; i++ )
printf("%d:%d ", i, scores[i]);
printf("\n");
break;
case 5: /* 結束作業 */
doit = 0;
break;
}
}
system("PAUSE");
return 0;
}
評分: ★★★☆
回覆刪除3: 顯示成績==> 功能有問題! (為何還要問請輸入學號...?)
評分: ★★★★▲
回覆刪除Good Job !