本文主要是介绍5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果(使用函数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;
B选手说:我第二,E第四;
C选手说:我第一,D第二;
D选手说:C最后,我第三;
E选手说:我第四,A第一;
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>int Forecast(int arr[])//判断预测结果
{if ((arr[1] == 2) + (arr[0] == 3) == 1&& (arr[1] == 2) + (arr[4] == 4) == 1&& (arr[2] == 1) + (arr[3] == 2) == 1&& (arr[2] == 5) + (arr[3] == 3) == 1&& (arr[4] == 4) + (arr[0] == 1) == 1)return 1;else return 0;
}
int Repetition(int arr[])//判断数组内的值是否有重复的
{int i = 0;int j = 0;for (i = 0; i < 5; i++)for (j = i + 1; j < 5; j++){if (arr[i] == arr[j])return 0;}return 1;
}
int main()
{int arr[5] = { 0 };//数组arr[0]~arr[4]分别代表A B C D E//arr[i]的值表示其名次for (arr[0] = 1; arr[0] <= 5; arr[0]++){for (arr[1] = 1; arr[1] <= 5; arr[1]++){for (arr[2] = 1; arr[2] <= 5; arr[2]++){for (arr[3] = 1; arr[3] <= 5; arr[3]++){for (arr[4] = 1; arr[4] <= 5; arr[4]++){if (Forecast(arr) == 1)if (Repetition(arr) != 0)printf("A:为第%d名 B:为第%d名 C:为第%d名 D:为第%d名 E:为第%d名\n", arr[0], arr[1], arr[2], arr[3], arr[4]);}}}}} system("pause");return 0;
}
优化:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>int maim()
{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)==1) && ((b == 2 || e == 4)==1) && ((c == 1 || d == 2)==1) && ((c == 5 || d == 3)==1) && ((e == 4 || a == 1)==1)){if ((a*b*c*d*e == 120) && (a + b + c + d + e == 15))printf("a是第%d名,b是第%d名,c是第%d名,d是第%d名,e是第%d名", a, b, c, d, e);}}}}}}system("pause");return 0;
}
这篇关于5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果(使用函数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!