[問題] 有沒有比較快速的寫法?

看板C_and_CPP作者 (豪大帥哥)時間14年前 (2009/12/29 09:17), 編輯推噓5(508)
留言13則, 8人參與, 最新討論串1/1
上次沒附程式被水桶這次有附了喔>"<~ c++的 題目跟之前的一樣 題號右邊的就是題目 寫是寫出來了...可以執行 小弟在想既然是程式應該是越短越好吧? 所以請教一下大大不知道有沒有比較快速的寫法呢... 程式在下面囉~ 1. //輸入座標 判斷是第幾象限 #include<stdio.h> #include<stdlib.h> main() { int x,y; printf("請輸入x與y的數值:\n"); scanf("%d",&x); scanf("%d",&y); if(x>0&&y>0) {printf("(%d,%d)為第一象限\n",x,y);} else if(x<0&&y>0) {printf("(%d,%d)為第二象限\n",x,y);} else if(x<0&&y<0) {printf("(%d,%d)為第三象限\n",x,y);} else if(x>0&&y<0) {printf("(%d,%d)為第四象限\n",x,y);} else if(x==0) {printf("(%d,%d)輸出在y軸上\n",x,y);} else if(y==0) //也可只打 else 就好 {printf("(%d,%d)輸出在x軸上\n",x,y);} system("pause"); return 0; } 2. //一直輸入成績 直到輸入0時停止輸入 印出連加後的成績 #include<stdio.h> #include<stdlib.h> int main() { int i; int sum,num=0; printf("請輸入測驗成績:\n"); for(i=0;i<=50;i++){ scanf("%d",&sum); num=sum+num; if(sum==0){ break; } } printf("測驗分數總計%d分 \n",num); system("pause"); return 0; } 3. //輸入5成績 由小到大排列印出 並計算70分以上有幾人 #include <stdio.h> #include <stdlib.h> #define NUM 5 int main() { int test[NUM],i,j,k=0,s,t,temp3; printf("請輸入五人的測驗成績:\n"); for(s=0;s<NUM;s++) {scanf("%d",&test[s]); if(test[s]>=70) {k++;} } printf("輸入出%d %d %d %d %d\n",test[0],test[1],test[2],test[3],test[4]); for(i=1;i<=NUM-1;i++){ for(j=i;j<=NUM-1;j++){ if(test[j]<test[i-1]) { temp3=test[i-1]; test[i-1]=test[j]; test[j]=temp3; } } } printf("排列由小---->大\n"); for(t=0;t<NUM;t++) {printf("%3d",test[t]);} printf("\n"); printf("七十分以上人數為%d\n",k); system("pause"); return 0; } 4. //用迴圈輸入20個整數 計算有多少個奇數和偶數 並印出分別的總和與平均值 #include<stdio.h> #include<stdlib.h> main() { int test[20],i,j=0,num=0,num1,k=0,sum=0,sum1; printf("請輸入20個數值:\n"); for(i=0;i<20;i++) { scanf("%d",&test[i]); if((test[i]%2)==1) {j++; num=test[i]+num; } else if((test[i]%2)==0) {k++; sum=test[i]+sum; } } num1=num/j; sum1=sum/k; printf("奇數次數為%d 總和為%d 平均值%d\n",j,num,num1); printf("雙數次數為%d 總和為%d 平均值%d\n",k,sum,sum1); system("pause"); return 0; } 5.//輸入選擇題答案 並計算對與錯的題數有多少 #include<stdio.h> #include<stdlib.h> #define NUM 12 main() { char str[12]; char test[NUM]={'a','b','c','d','e','a','b','c','d','e','a','b'}; int i,j=0,k=0; printf("請輸入12題選擇題答案(a b c d e):\n"); for(i=0;i<12;i++) { scanf("%s",&str[i]); if(test[i]==str[i]) { j++; } else if(test[i]!=str[i]) { k++; } } printf("答對題數為%d 錯誤題數為%d\n",j,k); system("pause"); return 0; } -- 對未來徬徨不知道要做什麼... http://www.wretch.cc/blog/JazY6804 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.113.120.123

12/29 09:26, , 1F
沒有越短越好這種事
12/29 09:26, 1F

12/29 09:27, , 2F
第四題, 如果輸入的全是奇數(或全是偶數) 會有問題
12/29 09:27, 2F

12/29 09:27, , 3F
其它的都八九不離十
12/29 09:27, 3F

12/29 10:28, , 4F
恩 會發生除以0的慘劇..
12/29 10:28, 4F

12/29 10:47, , 5F
程式沒有越短越好這種事, 越短越好只有用在抄作業或考試
12/29 10:47, 5F

12/29 10:47, , 6F
作小抄而已; 程式碼的正確性與可讀性比長短重要多了@_@"
12/29 10:47, 6F

12/29 10:51, , 7F
hmm 漏看最後一題, 輸入最後一個答案會會 buffer overrun
12/29 10:51, 7F

12/29 12:46, , 8F
新手就是喜歡想怎麼簡化游泳跑步 |(
12/29 12:46, 8F

12/29 13:05, , 9F
喔喔@@~謝謝ledia的指教
12/29 13:05, 9F

12/29 14:52, , 10F
新手很容易就會以為程式碼比較短就會比較快
12/29 14:52, 10F

12/29 18:51, , 11F
其實程式碼寫得再短,該配置的變數電腦還是會去做配置…
12/29 18:51, 11F

12/29 18:52, , 12F
執行速度不會因為程式碼越短而變得比較快~
12/29 18:52, 12F

12/29 21:46, , 13F
第一題 在X軸上可以加上 && y!=0 Y軸亦同 然後else在原點
12/29 21:46, 13F
文章代碼(AID): #1BELYtkK (C_and_CPP)