求助C 程式設計?本人正在學習C是個新手。有程式設計問題請教,求解答

2021-08-03 08:13:12 字數 1734 閱讀 2742

1樓:

1、首先是將五個人的**寫成表示式:

讓關係運算子 “==” 的含義是 “是”。

讓數字 1、2、3、4、5 分別表示名次。

讓整型變數 a、b、c、d、e 分別存放每個選手所得名次。

a選手說:b==2,a==3;

b選手說:b==2,e==4;

c選手說:c==1,e==2;

d選手說:c==5,d==3;

e選手說:e==4,a==1;

2、考慮到每個人說的話是一對一錯,即一真一假,比如a說的(b==2)+(a==3)應該是 1。

1+0=1

0+1=1

所以可以得到以下表示式:

ta= ((b==2)+(a==3))==1;

tb= ((b==2)+(e==4))==1;

tc= ((c==1)+(d==2))==1;

td= ((c==5)+(d==3))==1;

te = ((e==4)+(a==1))==1;

ta+tb+tc+td+te==5

3、每個人的名次是不同並且都是屬於,那麼我們就可以得到以下表示式:

a+b+c+d+e=15

a*b*c*d*e=120

4、通過列舉,多重迴圈即可得到滿足以上條件的a、b、c、d、e的值。

**如下:

#include

using namespace std;

int a,b,c,d,e;

void main()

for(a=1;a<=5;a++)

for(b=1;b<=5;b++)

for(c=1;c<=5;c++)

for(d=1;d<=5;d++)

for(e=1;e<=5;e++)

if((a+b+c+d+e)==15)

if ((a*b*c*d*e)==120)if (((b==2||a==3)+(b==2||e==4)+(c==1||d==4)+(c==5||d==3)+(e==4||a==1))==5)

2樓:匿名使用者

1 2 3 4 5

a說: b a

b說: b e

c說: c d

d說; d c

e說: a e

插圖比較麻煩,講究著看。

他們說的都是一半對一半錯,那麼我們就用假設法。

1:假設a說的當中a第三是對的-->那麼d說的d第三就錯-->則d說的c第五就對-->則c說的c第一就錯-->則c說的d第四就對,這樣我們就確定了a-3,d-4,c-5.

另一邊,a說a三對,-->則a說b是第二就錯-->b說的b是第二就錯-->b說的e是第四就對,而上面已經推出了d是第四,兩者相矛盾,所以就是錯了咯。

2:根據第一點推斷的,知道a說的b是第二十正確的,就根據這樣推就行了,結果是a b e d c.

當然,上面是我推出來了,所以直接先判的a說a第三是對,這樣就可以排除這種可能,但在寫**的過程中就需要你分很多種的情況去分析,說白了,也就是不斷的用if else if else....加上"||"和"&&"去做判斷,所以要比較的細心點要考慮到全面的情況。**就不寫了,我也嫌麻煩。

3樓:剎那v永恆

建議做一下八皇后,和這個一個道理……我得關機了,明天晚上給你寫程式

4樓:匿名使用者

窮舉,然後分別判斷每個人描述的是否是一個對一個錯,如果全滿足就可以輸出結果。

新手學習dsp的c語言程式設計請高手指點

c6713沒用過,我用過tms320f2812的晶元。建議你先熟悉一下ccs開發環境,然後再認真的看 ti的dsp,封裝了很多的標頭檔案,沒有必要全部都要看看標頭檔案裡是怎麼寫的。最好先把整個程式的執行流程看懂。然後結合晶元手冊,看看每一步怎麼做的,是如何通過配置暫存器 如何使用外設等等。關鍵還是看...

高分求助c語言中的錯誤(本人是新手)

printf 請輸入第二個集合 n for j 0 j 5 j scanf d b i scanf d b j 程式太長,你改改上面試試,看看是不是你要的結果 如果還不行,建議你單步執行看看,程式的東東,自己除錯出來才有成就感 include void main 集合的並運算 for i 0 i 5...

C語言現在在程式設計界是個什麼地位,用C語言可以進行有介面的程式設計嗎

如果說c語言沒用了,我可不贊同了 c語言既具有高階語言的特點又具低階語言的特點,既可以用來編寫系統軟體,也可以用來編寫應用軟體.如果你想學習更高階的程式語言,c語言是絕對的敲門磚 我學c語言的第一天,我的老師就跟我說了,要想學會程式設計,c語言就首先得搞結實了.vc 還是很有市場的。其實學習c關鍵是...