當前位置:編程學習大全網 - 編程語言 - C程序設計

C程序設計

簡化判斷條件花了我不少時間,結果出來後發現題給的條件不夠,估計是”丙“少壹個條件,所以得出兩個結果,經驗證都滿足妳的說明。

定義了12個變量,但是每個值只取1或者0,所以執行速度很快。本題關鍵是如何確定變量,這裏選定四個人每句話中的每個部分為壹個條件,比如設a="洞庭湖最大",那麽a=1表示“洞庭湖最大”為真,否則a=0表示“洞庭湖最大”為假。b="洪澤湖最小",c="鄱陽湖第三",其余類推。這樣程序就很簡潔明了。

至於判斷條件如何簡化是這樣:

四個人四句話得四個條件:(a+b+c==1)&&(d+e+f+g==1)&&(h+i==1)&&(i+j+k+l==1)

對最大的湖的描述得:a+d+j<2

對最小的湖的描述得:b+e+h+k==1

對第二大湖的描述得:f+l<2

對第三大的湖的描述得:c+g+i<2

再對每個湖而言

對洞庭湖:a+e+i<2

對洪澤湖:b+d+l<2

對鄱陽湖:c+f+h+j==1

對太湖:g+k<2

條件判斷很重要,要不程序執行後得出很多結果,其中很多都是錯的。我開始寫的判斷條件要復雜得多,最後簡化成這樣。這花了不少時間。不要認為我定義的變量多,而是因為妳的題給條件很多而且都要利用。建議妳看看<<C語言趣味程序百例精解>> ,上面有很多邏輯問題,很精彩。

至於妳說的圖形界面,最多也就是個字符界面,真正的圖形化界面沒人給妳寫的,太要時間,效果未必好看。程序有什麽不足密我(晚上12點以後)。

程序在win-tc和Dev-c++下運行通過,經驗證正確。(妳給的條件不夠)

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

int a,b,c,d,e,f,g,h,i,j,k,l;

char ch;

for(a=1;a>=0;a--)

for(b=1;b>=0;b--)

for(c=1;c>=0;c--)

for(d=1;d>=0;d--)

for(e=1;e>=0;e--)

for(f=1;f>=0;f--)

for(g=1;g>=0;g--)

for(h=1;h>=0;h--)

for(i=1;i>=0;i--)

for(j=1;j>=0;j--)

for(k=1;k>=0;k--)

for(l=1;l>=0;l--)

if((a+b+c==1)&&(d+e+f+g==1)&&(h+i==1)&&(i+j+k+l==1)&&(a+d+j<2)&&(b+e+h+k==1)&&(f+l<2)&&(c+f+h+j==1)&&(c+g+i<2)&&(a+e+i<2)&&(b+d+l<2)&&(g+k<2))

{if(a)

printf("Dongting is biggest.\n");

if(b)

printf("Hongze is smallest.\n");

if(c)

printf("Poyang is the third.\n");

if(d)

printf("Hongze is biggest.\n");

if(e)

printf("Dongting is smallest.\n");

if(f)

printf("Poyang is the second.\n");

if(g)

printf("Tai is the third.\n");

if(h)

printf("Poyang is smallest.\n");

if(i)

printf("Dongting is the third.\n");

if(j)

printf("Poyang is biggest.\n");

if(k)

printf("Tai is smallest.\n");

if(l)

printf("Hongze is the second.\n");

printf("\n\n");

}

/* for(ch='a';ch<='l';ch++) */

system("pause");

return 0;

}

  • 上一篇:雙十壹活動策劃文案5篇
  • 下一篇:教妳如何使用C語言編寫簡單小遊戲
  • copyright 2024編程學習大全網