小小偵探 + 楊輝三角
阿新 • • 發佈:2018-11-11
- 5位運動員參加了10米臺跳水比賽,有人讓他們預測比賽結果
A選手說:B第二,我第三;
B選手說:我第二,E第四;
C選手說:我第一,D第二;
D選手說:C最後,我第三;
E選手說:我第四,A第一;
比賽結束後,每位選手都說對了一半,請程式設計確定比賽的名次
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main( ) { int a, b, c, d, e; 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 (((b == 2 && a != 3) || (b != 2 && a == 3)) && ((b == 2 && e != 4) || (b != 2 && e == 4)) && ((c == 1 && d != 2) || (c != 1 && d == 2)) && ((c == 5 && d != 3) || (c != 5 && d == 3)) && ((e == 4 && a != 1) || (e != 4 && a == 1))) > 每一個人說的話,一般為真,一般為假,分兩種情況討論。 { if ((a != b && a != c && a != d && a != e && b != c && b!=d && b != e && c != d &&c != e && d != e)) > 限定A,B ,C ,D ,E 的名次不相同。 { printf("A=%d ,B=%d ,C=%d ,D=%d ,E=%d \n", a, b, c, d, e); } } } } } } } return 0; }
- 日本某地發生了一件謀殺案,警察通過排查確定殺人凶手必為4個
嫌疑犯的一個。以下為4個嫌疑犯的供詞。
A說:不是我。
B說:是C。
C說:是D。
D說:C在胡說
已知3個人說了真話,1個人說的是假話。
現在請根據這些資訊,寫一個程式來確定到底誰是凶手。
#include <stdio.h> int main ( ) { int killer ='0'; for (killer =='A'; killer =='D';killer++) { if ( (killer!='A')+ (killer=='C') +(killer=='D') +(killer!='D')==3) { printf ("%c ",killer); } } return 0; }
邏輯上的真假用0和1表示,當進行邏輯上的判斷時,可以直接進行數量上的加減。
- 在螢幕上列印楊輝三角。
#include <stdio.h> #define N 9 int main( ) { int i=0; int j=0; for (i=0;i<N;i++) { arr[i][0] =1; arr[i][i] =1; } for (i=2;i<N;i++) { for (j=1;j<i;j++) { arr[i][j] =arr[i-1][j] +arr[i-1][j-1]; } } for (i=0; i<N;i++) { for (j=0; **j< 3*(N-i)/2** ; j++) > 這裡相當於一個尺度的限定,來調整三角形的形狀, N-i /2 就是每一行前面所需要的空格的數量, 3倍控制其寬度的大小。 { printf (" "); } for (j=0;j<i;j++) { printf ("%**3**d ",arr[i][j]); } printf ("\n"); return 0; }