1.有一個四位正整數,組成這個四位數的四個數字各不相同,若是把它們的首尾互換,第二位與第三位互換,組成一個新的四位數。原四位數爲新四位數的4倍,請找出一個這樣的四位數。c++
# include <stdio.h> int main () { int a,b,c,d,e,i; for (i=1000;i<=9999;i++) { a=i%10; b=(i/10)%10; c=(i/100)%10; d=i/1000; e=a*1000+b*100+c*10+d; if ((a!=b)&&(b!=c)&&(c!=d)) { if(i==4*e) { printf ("%d",i); } } } return 0; }
2.輸入任意一個多位的數字,求各位數字之和。若是在【1,12】以內,則輸出與和數字對應的月份的英文名稱,不然輸出***。測試
樣例: 輸入123, 輸出 6 June網站
輸入12345,輸出 15 ***spa
# include <stdio.h> int main () { int a,b,c,sum=0; printf("輸入任意一個多位的數字"); scanf ("%d",&a); while(a!=0) { sum=sum+a%10; a=a/10; } printf ("%d",sum); if(sum>12||sum<1) { printf(" ***"); } else { switch(sum) { case 1:printf("January"); break; case 2:printf("February"); break; case 3:printf("March"); break; case 4:printf("April"); break; case 5:printf("May"); break; case 6:printf("June"); break; case 7:printf("July"); break; case 8:printf("August"); break; case 9:printf("September"); break; case 10:printf("October"); break; case 11:printf("November"); break; case 12:printf("December"); break; } } return 0; }
3.給定不超過6的正整數A,考慮從A開始的連續4個數字。請輸出全部由它們組成的無重複數字的3位數。code
輸入格式:輸入在一行中給出A。blog
輸出格式:輸出知足條件的的3位數,要求從小到大,每行6個整數。整數間以空格分隔,但行末不能有多餘空格。遊戲
輸入樣例:2it
輸出樣例:234 235 243 245 253 254io
324 325 342 345 352 354class
423 425 432 435 452 453
523 524 532 534 542 543
此題可在pta網站註冊提交測試。https://pta.patest.cn/pta/test/14/exam/4/question/796
# include<stdio.h> int main () { int A,a,b,c,d,e,count=0; printf ("請輸入不超過6的正整數A"); scanf ("%d",&A); if (A<=0||A>6) { printf ("error"); } else { a=A+4; for(b=A;b<a;b++) for(c=A;c<a;c++) for(d=A;d<a;d++) { if((b!=c)&&(c!=d)&&(b!=d)) { e=b*100+c*10+d; printf(" %d",e); count++; if(count%6==0) { printf ("\n"); } } } } return 0; }
4.完成看商品猜價格小遊戲。 要求:1.對輸入數據進行合法性驗證,每次猜數結果若是不對,則提示猜大了仍是猜小了,每件商品最多猜10次,若是猜對了,輸出猜了幾回,若是10次都沒猜對,則輸出商品的價格。 一輪遊戲結束後,讓用戶選擇是繼續下一輪遊戲仍是退出。
# include <stdio.h> #include <time.h> # include <stdlib.h> int main () { int magic,guess,i,count=0; char reply; srand (time(NULL)); magic=rand()%100+1; do { printf ("請猜一個價格,只有十次機會喲!"); scanf ("%d",&guess); count++; for(i=1;i<=10;i++) { if (guess>magic) { printf ("太大了,請從新輸入!"); } else if (guess<magic) { printf("過小了,請從新輸入!"); } else if (guess==magic) { printf("恭喜你,答對了!"); break; } scanf ("%d",&guess); if (i==10) { printf("十次都沒猜對,正確結果是%d",magic); } } printf ("繼續下一輪遊戲嗎?Y(y)orN(n)"); scanf (" %c",&reply); } while(reply=='Y'||reply=='y'); printf ("一共猜了%d 輪",count); return 0; }
二.知識點總結:
1.求個位數十位數百位數等;
2.不知循環次數可用while語句,switch....case 語句的使用,記得加break
3.第三題這個類型的題用窮舉法
4第四題這種類型的題用do ...while 語句循環很方便;
三.實驗總結
1.要考慮好每道題的完整性,不能有漏洞。例如讓輸入必定範圍內的數字,若是輸入的數字超出範圍,要寫輸入錯誤等。
2.要熟悉運用循環語句;
3.a=b=c要寫成a==b&&b==c&&c==a,別落了c==a
4.儘量要簡化本身的程序
5.switch....case 語句的使用,記得加break