
C语言第五章作业
AI-摘要
YouduAI GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
Page 137 3~12,16
#pragma once
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
// p137-3=============================================================
// 最大公约数
int maxgy(int a, int b) {
// 20 % 12 --> 12 % 8 --> 8 % 4 = 0 break
int t = 0;
if (a < b) {
t = a, a = b, b = t;
} // set max(a,b) is a
while (b) {
t = a % b;
a = b;
b = t;
}
return a;
}
// 最小公倍数
int mingb(int a, int b) {
// 20*i % 12 == 0 || 12*j%20 == 0 --> 20*i || 12*j is min gb
int i = 1;
while ((a * i) % b) {
i++;
}
return a * i;
}
// p137-4=============================================================
void countChar() {
//输人一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。p137-4
char x;
int a, b, c, d;
a = b = c = d = 0;
printf("请输入一行字符: ");
while ((x = getchar()) != '\n') {
if ((x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z')) a++;
else if (x == ' ') b++;
else if (x >= '0' && x <= '9') c++;
else d++;
}
printf("英文字母数量:%d\n空格数量:%d\n数字数量:%d\n其他字符数量:%d\n", a, b, c, d);
}
// p137-5=============================================================
void SumNa() {
printf("其中a是一个数字,n表示a的位数,n由键盘输入。例如:2+22+222+2222+22222 (此时 n=5)P137.5\n");
int a, n, i = 1, sum = 0, ax = 0;
printf("please input a and n(Separate with spaces)=: ");
scanf("%d%d", &a,&n);
while (i <= n) {
ax += a; //2 22 222
sum += ax; //2 24 246
if (i != n) printf("%d + ", ax);
else printf("%d = %d", ax, sum);
ax *= 10; //20 220
i++;
}
}
// p137-6=============================================================
// 递归法求阶乘
long long int factorial(int n) {
if (n == 0 || n == 1) return 1;
else return n * factorial(n - 1);
}
void sumFactorial() {
int i;
double sum = 0;
for (i = 1; i <= 20; i++) {
sum += factorial(i);
}
printf("1~20每个数字阶乘总和为: %f\n", sum);
}
// p137-7=============================================================
void SumP137_6() {
int nl = 100, n2 = 50, n3 = 10;
double k, s1 = 0, s2 = 0, s3 = 0;
for (k = 1; k <= nl; k++)
s1 = s1 + k;
for (k = 1; k <= n2; k++)
s2 = s2 + k * k;
for (k = 1; k <= n3; k++)
s3 = s3 + 1 / k;
printf("sum=%lf\n", s1 + s2 + s3);
}
// p137-8=============================================================
// 求水仙花数
int isSXH(int n) {
int i, j, k;
i = n / 100;
j = n / 10 - i * 10;
k = n % 10;
if (n == i * i * i + j * j * j + k * k * k) return 1;
else return 0;
}
void searchSXH() {
int i;
printf("SXH numbers are: ");
for (i = 100; i < 1000; i++) {
if (isSXH(i)) printf("%-4d", i);
}
printf("\n");
}
// p137-9=============================================================
// 完数
void WanShu(int a) {
int i, j = 0, sum = 0;
for (i = 1; i < a; i++) {
if (a % i == 0) {
sum += i;
j++;
}
}
if (sum == a) {
printf("%d its factors are ", a);
int n = 0;
for (i = 1; i < a; i++) {
if (a % i == 0) {
n++;
if (n != j) {
printf("%d, ", i);
}
else
{
printf("%d\n", i);
}
}
}
}
}
// p137-10=============================================================
void SumP137_10(int m=10) {
int i;
float a = 1.0, b = 2.0, sum = 0.0, t;
for (i = 1; i <= m; i++) {
sum = sum + b / a;
t = a;
a = b;
b = b + t;
}
printf("%f,%f", sum, 31.0 / 6);
}
// p138-11=============================================================
// 小球落地
void FallBall(int n = 3) {
float sn = 100, hn = sn / 2;
int i;
for (i = 2; i <= n; i++) {
sn += 2 * hn;
hn /= 2;
}
printf("第%d次落地共经历%f米\n", n, sn);
printf("第%d次落地反弹的高度是%f米\n", n, hn);
}
// p138-12=============================================================
// 猴子摘桃
void SumP138_12() {
int i, sum = 1;
for (i = 1; i <= 9; i++) {
sum = (sum + 1) * 2;
}
printf("第一天共摘了%d个桃子\n", sum);
}
// p138-16=============================================================
// 第五章符号打印
void myprint(int n=7) {
int m = (n + 1) / 2;
int i, j;
for (i = 1; i <= m; i++) {
for (j = 1; j <= m - i; j++) {
printf(" ");
}
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n");
}
for (i = 1; i <= n / 2; i++) {
for (j = 1; j <= i; j++) {
printf(" ");
}
for (j = 1; j <= n - 2 * i; j++) {
printf("*");
}
printf("\n");
}
}
// p136=============================================================
// 第五章字符加密
void encrypt() {
char c;
printf("please input a char: ");
while ((c = getchar()) != '\n') {
if (c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z') {
c += 4;
if (c > 'Z' && c <= 'Z' + 4 || c >'z') {
c -= 26;
}
printf("%c", c);
}
}
}
// 寻找完数
void searchWanShu() {
int i;
for (i = 3; i <= 1000; i++) {
WanShu(i);
}
}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果