条件判断应用
1、
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
2、 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。
3、在屏幕上打印杨辉三角。
A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
2、 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。
3、在屏幕上打印杨辉三角。
#include<stdio.h> #include<windows.h> int judgeEqual(int arr[], int size) { int tmp[6] = { 0 }; int i = 1; for (; i < size; i++){ int j = arr[i] % size; tmp[j]++; } for (int j = 0; j < size; j++){ if (tmp[j] > 1){ return 0; } } return 1; } /* 预测比赛结果: A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 每位选手都说对了一半,确定比赛的名次 */ //if嵌套判断 void forecastResult(int arr[], int size) { for (arr[1] = 1; arr[1] <= 5; arr[1]++){ for (arr[2] = 1; arr[2] <= 5; arr[2]++){ if (arr[2] == arr[1]){ continue; } for (arr[3] = 1; arr[3] <= 5; arr[3]++){ if ((arr[3] == arr[1]) || (arr[3] == arr[2])){ continue; } for (arr[4] = 1; arr[4] <= 5; arr[4]++){ if ((arr[4] == arr[1]) || (arr[4] == arr[2]) || (arr[4] == arr[3])){ continue; } for (arr[5] = 1; arr[5] <= 5; arr[5]++){ if ((arr[5] == arr[1]) || (arr[5] == arr[2]) || (arr[5] == arr[3]) || (arr[5] == arr[4])){ continue; } //judgeEqual(arr, size) && if ((arr[2] == 2) + (arr[1] == 3) == 1 && (arr[2] == 2) + (arr[5] == 4) == 1 && (arr[3] == 1) + (arr[4] == 2) == 1 && \ (arr[3] == 5) + (arr[4] == 3) == 1 && (arr[5] == 4) + (arr[1] == 1) == 1){ printf("a: %d b: %d c: %d d: %d e: %d\n", arr[1], arr[2], arr[3], arr[4], arr[5]); continue; } } } } } } } /* A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。 确定到底谁是凶手 */ void judgeMurderer() { for (int i = 'a'; i <= 'd'; i++){ if ((i != 'a') + (i == 'c') + (i == 'd') + (i != 'd') == 3){ printf("凶手是:%c\n", i); break; } } } //打印杨辉三角 void printTriangle(int line) { int a[64][64] = { 0, 1 }; for (int i = 1; i <= line; i++) { //打印空格 for (int j = 1; j <= line - i; j++){ printf(" "); } for (int j = 1; j <= i; j++) { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; //每个数是上面两数之和 printf("%4d", a[i][j]); } printf("\n"); } } int main() { /*int arr[6] = { 0 }; forecastResult(arr, 6);*/ //judgeMurderer(); int line = 5; printTriangle(line); system("pause"); return 0; }