(1)猜名次
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:c++
A选手说:B第二,我第三;编程
B选手说:我第二,E第四;ide
C选手说:我第一,D第二;函数
D选手说:C最后,我第三;ui
E选手说:我第四,A第一;code
比赛结束后,每位选手都说对了一半,请编程肯定比赛的名次
首先呢,编程的目的就是为了解决实际问题,当咱们看到这道题的时候,须要跳脱出咱们本身的固定思惟,学会编程思惟,俩者之间其实就是一个转换,大概步骤:
1,读题,了解到题目在表达什么,须要作什么,结果是要求什么
2.进行简单的分析,麻烦的,琐碎的思惟留给替你打工的计算机;string
代码展现;void gue***ank()//调用函数it
{io
int a, b, c, d, e;//int型是由于a,b.c.e.为变量,赋值12345.排名; 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 && (d == 3) + (c == 5) == 1 && (e == 4) + (a == 1) == 1)//进行筛选,由题分析获得的筛选条件;代码写于此处基本已完成,能够试一下运行看结果 { if (a * b * c * d * e != 120) //由上面结果能够获得,知足体干条件的状况里面,有重复排名的状况,此处进行这个操做,是在保证五人排名相异; { continue;跳出 } printf("a = %d, b = %d, c = %d, d = %d, e = %d\n", a, b, c, d, e);//打印结果,注意格式 } } } } } }
}class
int main()
{
gue***ank();//函数调用,这里会发现函数其实并未传参 return 0;
}
日本某地发生了一件谋杀案,警察经过排查肯定杀人凶手必为4个嫌疑犯的一个。
如下为4个嫌疑犯的供词:
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3我的说了真话,1我的说的是假话。
如今请根据这些信息,写一个程序来肯定到底谁是凶手
(1)问题的结果是输出凶手
(2)输出结果为A.B C D,k考虑到字符类型
(3)条件是三真一假,转化为代码如何构建
int main() { char murder; int i = 0, sum = 0; for (i = 1; i <= 4; i++) { murder = 64 + i;//murder为char类型,转为ABCD sum = (murder != 'A') + (murder == 'C') + (murder == 'D') + (murder != 'C'); if (sum == 3) { printf("凶手是:%c", murder); } } return 0; }
第三题
杨辉三角
总结规律:
// 1. 每一行, 第一列和最后一列都是 1
// 2. 每一行, 列数, 和当前行号相同
// 3. 第 row 行 第 col 列 元素的内容, row-1行 col-1列 + row-1行 col列
// 例如, 第3行第2列值是 2 , 第 2 行第 1 列 和 第2行 第2列 和
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<string.h> // //杨辉三角 //1.首位是1; //2.出首尾外,每次的数字为上一行,上一列所在和上一行,所在列的和; void print_yanghui(int n) { int arr[15][15] = { 0 };//此处的15是随手给的,若是须要动态变化的话,可使用·例如malloc, for (int row = 1; row <= n; row++)//行的循环 { for (int col = 1; col <= row; col++)//列的循环 { if (col == 1 || col == row)//首尾为一 { arr[row][col] = 1; } else { arr[row][col] = arr[row - 1][col - 1] + arr[row - 1][col]; } printf("%d", arr[row][col]);//打印一行 }printf("\n");//打印完一行后换行操做 } } int main() { int n = 0; printf("亲输入要打印的杨辉三角的行数>");//此处给定基础数量的自定义操做 scanf("%d", &n); print_yanghui(10); return 0; }