1
思路:
- 先接收第一个输入数值,预设为当前最大值
- 循环读取剩下 9 个数字,每输入一个就和当前最大值对比
- 如果新数字更大,则更新最大值
- 循环结束之后输出保存好的最大值
方法1:数组存储全部 10 个数字
int main() { //先输入10个数,将第一个数设为最大值, // 再用第一个数跟后面的九个数比较,跟新最大值 int arr[10], i, max; for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); } max = arr[0]; for (i = 1; i < 10; i++) { if (arr[i] > max) { max = arr[i]; //更新最大值 } } printf("max: %d\n", max); return 0; }方法2:for循环
int main() { //先输入10个数,将第一个数设为最大值, // 再用第一个数跟后面的九个数比较,跟新最大值 int max, num, i; //先读取一个数作为最大值 scanf("%d", &max); //再读取后面的九个数 for (i = 1; i < 10; i++) { scanf("%d", &num); if (num > max) { max = num; } } printf("max: %d\n", max); return 0; }
求 1+2+3+…+100
思路
- 循环方式:设置累加变量sum初始值为 0,逐个把 1‑100 的数值加到 sum;
- 数学公式:等差数列求和公式,不需要循环,一步算出结果,执行速度最快。
for 循环
//int main() //{ // int i, sum; // sum = 0; //sum初始值为0 // for (i = 1; i <= 100; i++) // { // sum += i; // } // printf("%d\n", sum); // return 0; //}while 循环
//int main() //{ // //方法2 while循环 // int i=1, sum; //变量要初始化 // sum = 0; // while (i <= 100) // { // sum += i; // i++; // } // printf("%d\n", sum); // return 0; //}等差数列公式
公式:(首项 + 末项)* 项数 / 2
int main() { //方法3:等差数列公式 int sum; sum = (1 + 100) * 100 / 2; printf("%d\n", sum); return 0; }
判断一个数 n 能否同时被 3 和 5 整除
- && 是逻辑与运算符,代表两个条件必须全部成立;
- 一个整数同时被 3 和 5 整除 → 该数是 15 的倍数;
- a%b 代表求 a 除以 b 之后的余数,余数等于 0 即代表可以整除。
int main() { int n; scanf("%d", &n); if (n % 15 == 0 ) { printf("%d能同时被3和5整除\n", n); } else { printf("%d不能同时被3和5整除\n", n); } return 0; }//判断一个数 n 能否同时被 3 和 5 整除 //int main() //{ // int n; // scanf("%d", &n); // if (n % 3 == 0 && n % 5 == 0) // { // printf("%d能同时被3和5整除\n", n); // } // else // { // printf("%d不能同时被3和5整除\n", n); // } // // return 0; //}
输出 100~200 之间所有素数
素数(质数):大于 1,除 1 和它自身之外,不能被其他整数整除的数字。
优化技巧:
- 只需循环试探至 sqrt(n),节省运算;
- 100‑200 全部为大于 2 的整数,偶数一定不是素数,可以直接只遍历奇数。
思路:
- flag 作为判断标记,一开始默认该数是素数;一旦发现可以被整除,就修改标记并跳出内层循环。
- sqrt(n):若 n 存在大于其平方根的因数,则必然存在对应的小于平方根的因数,因此只需要检测到平方根即可。
//输出 100~200 之间所有素数 int main() { int n, i, flag; for (n = 100; n <= 200; n++) { flag = 1; for (i = 2; i <= sqrt(n); i++) { if (n % 2 == 0) { flag = 0; break; } } if (flag == 1) { printf("%d ", n); } } return 0; }