《算法学习与应用 从入门到精通》——填写运算符
生活随笔
收集整理的這篇文章主要介紹了
《算法学习与应用 从入门到精通》——填写运算符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
輸入五個數,數與數之間用空格分開,然后給出結果,然后在5個數間添加“+”,“-”,“*”,“/”4個運算符,使得等式成立。
例如:
輸入:5 5 5 5 5
結果是5:
5+5+5-5-5=5
“+,+,-,-”算一組正確答案
代碼
/*填寫運算符*/ #include <stdio.h> int main (void) {int j;int i[5]; //數組i用來表示4個運算符int sign; //累加運算時的符號int result; //保存運算式的結果值int count=0; //計數器,統計符合條件的方案int num[6]; //保存操作數float left; //保存中間結果左值float right; //保存中間結果右值char oper[5]={' ','+','-','*','/'}; //五種運算符 printf("輸入5個數,之間用空格隔開:");for (j=1;j<=5;j++) //使用for循環輸入 scanf ("%d",&num[j]); //循環輸入的五個數賦給num數組 printf ("輸入結果: "); scanf ("%d",&result);for (i[1]=1;i[1]<=4;i[1]++) //循環4種運算符,1表示+,2表示-,3表示*,4表示/ {if((i[1]<4)||(num[2]!=0)) //運算符若是/,則第二個運算數不能為0 {for (i[2]=1;i[2]<=4;i[2]++) {if((i[2]<4)||(num[3]!=0)) //運算符若是/,則第三個數不能為0 {for (i[3]=1;i[3]<=4;i[3]++){if((i[3]<4)||num[4]!=0) //運算符若是/,則第四個數不能為0 {for (i[4]=1;i[4]<=4;i[4]++){if((i[4]<4)||(num[5]!=0)) //運算符若是/,則第五個數不能為0 {left = 0; //初始化左值為0 right = num[1]; //初始化右值為num數組的第一個數 sign = 1; //用于累加運算,區別+和- for (j=1;j<=4;j++) //運用for循環,用于判斷兩個數之間的符號{switch (oper[i[j]]) //switch語句,判斷運算符進行運算 {case'+': //運算符為+時的情況 left=left+sign*right;sign=1;right=num[j+1]; //將num數組的第二個數賦給rightbreak;case'-': //運算符為-時的情況 left=left+sign*right;sign=-1; right=num[j+1]; //將num數組的第三個數賦給rightbreak;case'*': //運算符為*時的情況 right=right*num[j+1]; //將num數組的第三個數break;case'/': //運算符為/時的情況 right=right/num[j+1];break; }}if(left+sign*right==result){count++;printf("%3d: ",count);for (j=1;j<=4;j++)printf("%d%c",num[j],oper[i[j]]);printf("%d=%d \n",num[5],result);}}}}}}}} } if(count==0)printf("沒有符合要求的方法! \n");getchar (); return 0; }總結
以上是生活随笔為你收集整理的《算法学习与应用 从入门到精通》——填写运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习——02、深度学习入门 15-1
- 下一篇: 程序员表白代码