C语言—第5次作业—分支与循环(初学者经典代码题)
2024-01-08 17:52:33
1.判断奇偶数
问题描述:判断一个整数是奇数还是偶数。
解题思路:使用 %
运算符判断数字是否能被2整除。
代码:
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (num % 2 == 0)
printf("%d 是偶数。\n", num);
else
printf("%d 是奇数。\n", num);
return 0;
}
2.计算阶乘
问题描述:计算一个给定数字的阶乘。
解题思路:使用循环从1乘到给定的数字。
#include <stdio.h>
int main() {
int n, factorial = 1;
printf("请输入一个正整数:");
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
factorial *= i;
}
printf("%d 的阶乘 = %d\n", n, factorial);
return 0;
}
3.打印乘法表
问题描述:打印出10以内的乘法表。
解题思路:使用两个嵌套循环,分别控制行和列。
#include <stdio.h>
int main() {
for (int i = 1; i <= 10; ++i) {
for (int j = 1; j <= 10; ++j) {
printf("%d*%d=%d\t", i, j, i * j);
}
printf("\n");
}
return 0;
}
4.寻找最大数
问题描述:从用户输入的一系列数字中找出最大的数。
解题思路:使用循环读取每个数字,并用一个变量跟踪最大值。
#include <stdio.h>
int main() {
int n, num, max;
printf("输入数字的数量:");
scanf("%d", &n);
printf("请输入 %d 个数字:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &num);
if (i == 0 || num > max) {
max = num;
}
}
printf("最大数是 %d\n", max);
return 0;
}
5.计算数字的和
问题描述:计算从1加到用户输入的数字。
解题思路:使用循环累加从1到用户输入的数字。
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += i;
}
printf("从1到%d的和为:%d\n", n, sum);
return 0;
}
6.判断素数
问题描述:判断一个数字是否为素数。
解题思路:检查数字是否只能被1和它本身整除。
#include <stdio.h>
int main() {
int n, flag = 1;
printf("请输入一个整数:");
scanf("%d", &n);
for (int i = 2; i <= n / 2; ++i) {
if (n % i == 0) {
flag = 0;
break;
}
}
if (n <= 1) flag = 0;
if (flag)
printf("%d 是素数。\n", n);
else
printf("%d 不是素数。\n", n);
return 0;
}
7.翻转数字
问题描述:将一个整数数字翻转。
解题思路:通过取余和整除操作逐位翻转数字。
#include <stdio.h>
int main() {
int n, reversed = 0;
printf("请输入一个整数:");
scanf("%d", &n);
while (n != 0) {
reversed = reversed * 10 + n % 10;
n /= 10;
}
printf("翻转后的数字为:%d\n", reversed);
return 0;
}
8.打印星形图案
问题描述:打印一个星形的图案。
解题思路:使用循环控制行和列,打印合适数量的星号。
#include <stdio.h>
int main() {
int rows;
printf("输入行数:");
scanf("%d", &rows);
for (int i = 1; i <= rows; ++i) {
for (int j = 1; j <= i; ++j) {
printf("* ");
}
printf("\n");
}
return 0;
}
9.找出公约数
问题描述:找出两个数字的最大公约数。
解题思路:使用辗转相除法。
#include <stdio.h>
int gcd(int a, int b) {
while (b != 0) {
int t = b;
b = a % b;
a = t;
}
return a;
}
int main() {
int num1, num2;
printf("输入两个整数:");
scanf("%d %d", &num1, &num2);
printf("最大公约数是:%d\n", gcd(num1, num2));
return 0;
}
10.斐波那契数列
问题描述:打印斐波那契数列的前N项。
解题思路:使用循环或递归计算斐波那契数列。
#include <stdio.h>
int main() {
int n, first = 0, second = 1, next;
printf("请输入要打印的项数:");
scanf("%d", &n);
printf("斐波那契数列的前 %d 项是:\n", n);
for (int i = 0; i < n; i++) {
if (i <= 1)
next = i;
else {
next = first + second;
first = second;
second = next;
}
printf("%d, ", next);
}
return 0;
}
文章来源:https://blog.csdn.net/m0_52889787/article/details/135374108
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!