剛剛好不容易才寫出來....
我把原始碼貼上來給大家參考看看吧~
如果有人有更短更有效率的程式....
也歡迎提供給我做為以後寫作業的參考唷~
簡單來說就是歡迎大家指教啦~
複製程式
#include <stdio.h>
#include <stdlib.h>
int i=0,j,k;/*宣告變數i,j,k為整數型態*/
char a[5],b[5];/*宣告陣列a,b為字元型態*/
int grade(char a[5])/*宣告函式grade*/
{
j=0;/*設定j的初始值=0*/
re:/*goto標記*/
printf("請輸入答案:");
scanf("%s",b);/*取得學生答案*/
strupr(b);/*讓字母變大寫*/
k=strlen(b);/*測出b的字串長度*/
if((k>5)||(k<5))
{
printf("輸入錯誤~!!!\n");
goto re;
}
else
{
i=0;
while(i<5)
{
if(a[ i ]==b[ i ])
{
j=j+20;
}
i++;
}
}
return j;
}
int main(void)
{
j=0;
int ga,gb;/*宣告變數ga,gb為整數型態*/
char ans,na[10],nb[10];/*宣告ans,陣列na,nb為字元型態*/
printf("==================================\n");
printf(" 歡迎來到電腦成績查詢系統\n");
printf("最多5題,每題20分,每次輸入2位學生\n");
printf("==================================\n");
printf("請輸入標準答案:");
scanf("%s",&a);/*取得標準答案*/
strupr(a);/*讓標準答案的字母變成大寫*/
printf("==================================\n");
printf("標準答案:");
printf("%s",a);
printf("\n==================================\n");
rerun:/*goto標記*/
printf("請輸入第一位學生的名字:");
scanf("%s",&na);/*取得第一位學生的名字*/
ga=grade(a);/*計算第一位學生的成績*/
printf("請輸入第二位學生的名字:");
scanf("%s",&nb);/*取得第二位學生的名字*/
gb=grade(a);/*計算第二位學生a的成績*/
printf("==================================\n");
printf(" 成績結果\n");
printf("==================================\n");
printf("%s\n",na);
printf("成績:%d\n",ga);
printf("%s\n",nb);
printf("成績:%d\n",gb);
re2:/*goto標記*/
printf("請問是否繼續?(y/n)");
scanf(" %c",&ans);
if((ans=='y')||(ans=='Y'))
{
goto rerun;
}
else if((ans=='n')||(ans=='N'))
{
printf("感謝您的使用~ByeBye~~!!!\n");
}
else
{
printf("\n輸入錯誤~!!!\n");
goto re2;
}
system("PAUSE");
return 0;
}