這個做業屬於哪一個課程 | 2020面向對象程序設計張棟班 |
---|---|
這個做業要求在哪裏 | 寒假做業1 |
這個做業的目標 | 安裝開發環境、回顧知識、瞭解編譯過程、實現白話文編程、記錄學習過程併發布博客 |
做業正文 | 1.問答題2. 實踐題3.編程題 |
其它參考文獻 | 問答題和實踐題中已註明 |
注: 系統是Mac OShtml
語法定義:遇到「整數「時開始定義變量,並把「等於「後面的中文所表明的大小賦值給變量;遇到「增長「、」減小「可以進行相應的運算;遇到」看看「可以輸出最終結果編程
超過9的數據可以處理成中文的語言習慣,好比10不是輸出」一零「而是」十「併發
temp = a.value; if(temp <= 10) { printf("%s",convertToString(temp)); } else if(temp % 10 == 0 && temp < 100) { printf("%s十",convertToString(temp/10)); #十的整數倍輸出爲幾十而不是幾零 } else if(temp < 20) { temp %= 10; printf("十%s",convertToString(temp)); #輸出十幾而不是一十幾 } else if(temp < 100) { printf("%s十%s",convertToString(temp/10),convertToString(temp%10)); }
// 感受處理方式不太好,提示錯誤的方式也是很暴力 #include <stdio.h> #include <string.h> typedef struct variable { char name[1000]; int value; } var; int convertToInt(char str[]); char* convertToString(int n); int main() { var a; char integer[6]; char name[1000],operator[6],number[3]; int temp; scanf("%s",integer); if(strcmp(integer,"整數")) { printf("Error: 您輸入的不是「整數」\n"); } else { scanf("%s%s%s",a.name,operator,number); if(strcmp(operator,"等於")) { printf("Error: 您輸入的不是「等於」\n"); } else if(convertToInt(number) == -1) { printf("Error: 請輸入正確的數字大小\n"); } else { a.value = convertToInt(number); //賦初始值 scanf("%s",name); while(!strcmp(name,a.name)) { scanf("%s%s",operator,number); if(convertToInt(number) == -1) { printf("Error: 請輸入正確的數字大小\n"); } else if(!strcmp(operator, "增長")) { a.value += convertToInt(number); } else if(!strcmp(operator, "減小")) { a.value -= convertToInt(number); } else { printf("Error: 請輸入正確的運算\n"); break; } scanf("%s",name); } if(!strcmp(name,"看看")) { scanf("%s",name); if(!strcmp(name,a.name))//「看看」後面輸入的內容得和前面的變量名稱相同 { temp = a.value; if(temp <= 10) { printf("%s",convertToString(temp)); } else if(temp % 10 == 0 && temp < 100) { printf("%s十",convertToString(temp/10));//十的整數倍輸出爲幾十而不是幾零 } else if(temp < 20) { temp %= 10; printf("十%s",convertToString(temp));//輸出十幾而不是一十幾 } else if(temp < 100) { printf("%s十%s",convertToString(temp/10),convertToString(temp%10)); } } else { printf("不存在此變量\n"); } } } } return 0; } int convertToInt(char str[]) { if(!strcmp(str,"零")) return 0; else if(!strcmp(str,"一")) return 1; else if(!strcmp(str,"二")) return 2; else if(!strcmp(str,"三")) return 3; else if(!strcmp(str,"四")) return 4; else if(!strcmp(str,"五")) return 5; else if(!strcmp(str,"六")) return 6; else if(!strcmp(str,"七")) return 7; else if(!strcmp(str,"八")) return 8; else if(!strcmp(str,"九")) return 9; else return -1; } char* convertToString(int n) { if(n == 0) return "零"; else if(n == 1) return "一"; else if(n == 2) return "二"; else if(n == 3) return "三"; else if(n == 4) return "四"; else if(n == 5) return "五"; else if(n == 6) return "六"; else if(n == 7) return "七"; else if(n == 8) return "八"; else if(n == 9) return "九"; else if(n == 10) return "十"; else return "Error"; }