题目:
连个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。以抽签结果决定比赛名单。有人向队员打听比赛名单,A说他不与X比,C说他不与X,Z比,请编程序找出3对赛手名单
思路:
(1)设三个变量,变量i,j,k范围都是X,Y,Z,i代表A的对手,j代表B的对手,k代表C的对手(2)限制条件是比赛人员不能重复即 i!=k!=j (3)A不与X比,C不与X,Z比可以表示为i!=X k!=X&&k!=Z
代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
//利用3层for循环把A,B,C,所对战的人出现的情况遍历一遍
char i, j, k;
//A对战i,B对战j,C对战k,范围都是X~Y
for (i = 'X'; i <= 'Z'; i++){
for (j = 'X'; j <='Z'; j++){
for (k = 'X'; k <= 'Z'; k++){
//比赛人员不能重复
if (i != k&&i != j&&j != k){
//A不与X比,C不与X,Z比
if (i != 'X'&&k != 'X'&&k != 'Z'){
printf("A->%c,B->%c,C->%c", i, j, k);
}
}
}
}
}
system("pause");
return 0;
}
结果:
题目:
输出以下的杨辉三角形(要求输出十行)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
思路:
(1)每一行的第一列与最后一列值为1
(2)当前数=同一列上一个数+同一列上一个数的前一个数
代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
//创建二维数组
int arr[10][10],j,i;
for ( i = 0; i < 10; i++){
//每一行的第一个元素与最后一个元素都为1
arr[i][0] = 1;
arr[i][i] = 1;
for (j = 1; j < i; j++){
//当前数 = 同一列上一个数 + 同一列上一个数的前一个数
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
for (int i = 0; i < 10; i++){
for (j = 0; j <= i; j++){
printf("%d\t", arr[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
结果: