[問題] 這程式碼打完後感覺有點長
#include<stdio.h>
#include<stdlib.h>
int recur(int i,int j);
int recur1(int i,int j);
int recur2(int i,int j);
int main()
{
int g1,g2,s1,s2,s3,s4,s5;
printf("先想好兩個數字(限整數)\n");
printf("請將第一個數字數入a=");
scanf("%d",&g1);
while(g1>=100 || g1<=0)
//判斷輸入的數字範圍0~99,如果不是就一直重新輸入
{
printf("輸入錯誤,你輸入的是%d\n",g1);
printf("輸入超過範圍\n");
printf("請重新輸入\n");
scanf("%d",&g1);
continue;
}
printf("請乘於50\n%d*",g1);
scanf("%d",&s1);
while(s1!=50)
//判斷輸入的數字是不是50,如果不是就一直重新輸入
{
printf("輸入錯誤,你輸入的是%d\n",s1);
printf("請重新輸入\n");
printf("請乘於50\n%d*",g1);
scanf("%d",&s1);
continue;
}
printf("%d* %d=",g1,s1); g1=recur(g1,s1);//運算給recur副程式處理,並傳回值
printf("%d\n",g1);
printf("請加上30\n%d+",g1);
scanf("%d",&s2);
while(s2!=30)//判斷輸入的數字是不是30,如果不是就一直重新輸入
{
printf("輸入錯誤,你輸入的是%d\n",s2);
printf("請重新輸入\n");
printf("請加上30\n%d+",g1);
scanf("%d",&s2);
continue;
}
printf("%d+%d=",g1,s2); g1=recur1(g1,s2);//運算給recur1副程式處理,並傳回值
printf("%d\n",g1);
printf("請乘於2\n%d*",g1);
scanf("%d",&s3);
while(s3!=2)//判斷輸入的數字是不是2,如果不是就一直重新輸入
{
printf("輸入錯誤,你輸入的是%d\n",s3);
printf("請重新輸入\n");
printf("請乘於2\n%d*",g1);
scanf("%d",&s3);
continue;
}
printf("%d*%d=",g1,s3); g1=recur(g1,s3);//運算給recur副程式處理,並傳回值
printf("%d\n",g1);
printf("請加上第二個想的數字\n%d+",g1);
scanf("%d",&s4);
while(s4>=100 or s4<=0)//判斷輸入的數字範圍0~99,如果不是就一直重新輸入*/
{
printf("輸入錯誤,你輸入的是%d\n",s4);
printf("輸入超過範圍\n");
printf("請重新輸入\n");
scanf("%d",&s4);
continue;
}
printf("%d+%d=",g1,s4); g1=recur1(g1,s4);//運算給recur1副程式處理,並傳回值
printf("%d\n",g1);
printf("請減掉60\n%d-",g1);
scanf("%d",&s5);
while(s5!=60)//判斷輸入的數字是不是60,如果不是就一直重新輸入
{
printf("輸入錯誤,你輸入的是%d\n",s5);
printf("請重新輸入\n");
printf("請減掉60\n%d-",g1);
scanf("%d",&s5);
continue;
}
printf("%d-%d=",g1,s5); g1=recur2(g1,s5);//運算給recur2副程式處理,並傳回值
printf("%d\n",g1);
printf("答案是:%d%d\n",(((g1+60-s4)/2)-30)/50,(g1+60)-(g1+60-s4));
printf("前兩位為所想的第一數\n後兩位為所想的第二數\n");
system("PAUSE");
return 0;
}
int recur(int i,int j)
{
int k;
k=i*j;
return(k);
}
int recur1(int i,int j)
{
int k;
k=i+j;
return(k);
}
int recur2(int i,int j)
{
int k;
k=i-j;
return(k);
}
請問,板上有沒有神人能夠把它簡化一點?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.213.225
※ 編輯: hhenry666 來自: 122.116.213.225 (01/04 23:20)
→
01/04 23:22, , 1F
01/04 23:22, 1F
→
01/04 23:26, , 2F
01/04 23:26, 2F
推
01/04 23:58, , 3F
01/04 23:58, 3F
使用各種控制敘述如 do-while,switch,遞回函式或其他方法(註:一定要使用 遞回函式 ),不可使用組合兩個變數直接輸入/輸出方法
※ 編輯: hhenry666 來自: 122.116.213.224 (01/05 00:13)
→
01/05 00:17, , 4F
01/05 00:17, 4F
應該都可,好像就只是要做出算出他的數值然後再回傳回去
※ 編輯: hhenry666 來自: 122.116.213.224 (01/05 00:22)
推
01/05 01:15, , 5F
01/05 01:15, 5F
推
01/05 17:26, , 6F
01/05 17:26, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章