答案供參考,完全憑印象中的題目去寫的@@
考試的時候我是一個程式一個cpp檔
不過剛剛重寫,索性就把他全部整合再一個程式了
我有標在各個function名稱旁寫註解,註明這個function的功用,哪一題不懂,可以直接去看那個function
main()裡面都只是引導語跟input/output而以
考試的時候我是一個程式一個cpp檔
不過剛剛重寫,索性就把他全部整合再一個程式了
我有標在各個function名稱旁寫註解,註明這個function的功用,哪一題不懂,可以直接去看那個function
main()裡面都只是引導語跟input/output而以
#include <stdio.h> #include <stdlib.h> //Phototype void swap(int* a,int* b); void triangle_a(int level,int symbol); void triangle_b(int level,int symbol); int seven(int* number); int prime_test(int number); void prime_number_print(void); void main(void) { int choose; for(;;) { char again=0; printf("請輸入題號\n"); printf("\t1-兩數字比大小,第一個大於第二個則交換,且以0和1控制是否繼續進行\n"); printf("\t2-A組數字三角形\n"); printf("\t3-B組數字三角形\n"); printf("\t4-檢驗5位數字有幾個7,超過三個就改成全部皆為7\n"); printf("\t5-列出1~1000的質數\n"); printf("要Demo的題號是? >"); scanf_s("%d",&choose); //給第一題的變數 int play,first_number,second_number; //給第二題和第三題的變數 int level,symbol; //給第四題的變數 int number; switch(choose) { case 1: printf("You choose the first question - 交換數字\n"); do{ printf("please enter first number >"); scanf_s("%d",&first_number); printf("please enter second number >"); scanf_s("%d",&second_number); printf("You inupt number is %d and %d\n",first_number,second_number); swap(&first_number,&second_number); printf("after fuction now they is %d and %d\n",first_number,second_number); printf("Do you want to once again ? input 1 = again , inupt 0 = exit\n"); printf("Your choose is ? >"); scanf_s("%d",&play); }while(play==1); break; case 2: printf("You choose the Second question - A組數字三角形\n"); printf("please enter triangle level>"); scanf_s("%d",&level); printf("please neter triangle symbol>"); scanf_s("%d",&symbol); triangle_a(level,symbol); break; case 3: printf("You choose the Third question - B組數字三角形\n"); printf("please enter triangle level>"); scanf_s("%d",&level); printf("please neter triangle symbol>"); scanf_s("%d",&symbol); triangle_b(level,symbol); break; case 4: printf("You choose the fourth question - 5-digit check\n"); printf("please enter 5-digit number >"); scanf_s("%d",&number); printf("Your input is %d",number); printf(" have %d seven(s)",seven(&number)); printf("\nAnd now it is %d\n",number); break; case 5: printf("You choose the fourth question - prime number from 1 to 1000\n"); prime_number_print(); printf("\n"); break; } printf("Do you want to Demo else question ? [Y/N]"); while(again != 'n' && again != 'N' && again != 'y' && again != 'Y') again=getchar(); if(again == 'n' || again == 'N') break; } printf("Bye! Bye!"); system("pause"); } //比大小和交換 void swap(int* a,int* b) { int temp=*a; if(*a > *b) { *a=*b; *b=temp; } } //A組的三角形 void triangle_a(int level,int symbol) { for(int i=level;i>0;i--) { for(int j=0;j<i;j++) printf("%d",symbol); printf("\n"); } for(int i=1;i<=level;i++) { for(int j=0;j<i;j++) printf("%d",symbol); printf("\n"); } } //B組的三角形 void triangle_b(int level,int symbol) { for(int i=1;i<level;i++) { for(int j=0;j<i;j++) printf("%d",symbol); printf("\n"); } for(int i=level;i>0;i--) { for(int j=0;j<i;j++) printf("%d",symbol); printf("\n"); } } //檢驗7的個數 int seven(int* number) { int temp=*number,result=0; while(temp > 0) { if(temp%10 == 7) result++; temp=temp/10; } if(result >= 3) *number = 77777; return result; } //質數檢查,列出質數使用 int prime_test(int number) { if(number%2 == 0 && number == 2) return 1; int i=2; for(;;) { if(number%i == 0) { return 0; break; } if(i>=number/2) break; i++; } return 1; } //列出1~1000的質數 void prime_number_print(void) { int row_con=1; for(int i=1;i<1000;i++) { if(prime_test(i)) { printf("%d\t",i); row_con++; } if(row_con > 10) { printf("\n"); row_con=1; } } }
沒有留言:
張貼留言