您的位置:首页 > 汽车 > 新车 > 西安官网seo收费_商丘网站_开封搜索引擎优化_百度热搜榜单

西安官网seo收费_商丘网站_开封搜索引擎优化_百度热搜榜单

2024/11/16 13:42:51 来源:https://blog.csdn.net/2401_86043214/article/details/143226691  浏览:    关键词:西安官网seo收费_商丘网站_开封搜索引擎优化_百度热搜榜单
西安官网seo收费_商丘网站_开封搜索引擎优化_百度热搜榜单

 6.1

题目描述:使用if和goto语句,求1+2+3+…+100的值。

输入:无

输出:输出题目描述中表达式的值。请注意行尾输出换行。

#include <stdio.h>int main() {int sum = 0;int i = 1;loop:sum += i;i++;if (i <= 100) {goto loop;}printf("%d\n", sum);return 0;
}

注意goto语法的使用

6.3

题目描述:用do…wihle语句求1+2+3+…+100的值。

输入:无

输出:输出题目描述中表达式的值。请注意行尾输出换行。

#include <stdio.h>int main() {int sum = 0;int i = 1;do {sum += i;i++;} while (i <= 100);printf("%d\n", sum);return 0;
}

注意while语句的语法

6.5

题目描述:使用这个公式求π的近似值,直到某一项的绝对值小于10-6为止。

输入:无

输出:输出π的近似值,保留6位小数。请注意行尾输出换行。

#include <stdio.h>
#include <math.h>int main() {double pi = 0;int sign = 1;int n = 0;double term;do {term = sign * 1.0 / (2 * n + 1);pi += term;sign = -sign;n++;} while (fabs(term) >= 1e-6);pi *= 4;printf("%.6lf\n", pi);return 0;
}

6.6

题目描述:求Fibonacci数列的前40个数。

输入:无

输出:输出Fibonacci数列的前40个数,并在每个数之后输出一个空格。请注意行尾输出换行。

#include <stdio.h>
int  fib(int n) {int first = 1, second = 1;int result;if (n == 0 || n == 1) {return 1;}for (int i = 2; i <= n; i++) {result = first + second;first = second;second = result;}return result;
}int main() {for (int i = 0; i < 40; i++) {long long number = fib(i);printf("%d ", number);}return 0;
}

6.9 电文加密

题目描述:给电文加密。加密规则是对于每一个字符,如果是字母,变换成其相应的其后(循环的字母序,即A紧跟在Z的后面)的第4个字母。例如A变成E,a变成e,W变成A,X变成B,Y变成C,Z变成D。如果不是字母,则不进行变换。

输入:输入一行字符。

输出:输出相应的密码。请注意行尾输出换行。

#include <stdio.h>int main() {char ch;while ((ch = getchar()) != '\n') {if (ch >= 'A' && ch <= 'V') {ch += 4;}else if (ch >= 'W' && ch <= 'Z') {ch -= 22;}else if (ch >= 'a' && ch <= 'v') {ch += 4;}else if (ch >= 'w' && ch <= 'z') {ch -= 22;}printf("%c", ch);}return 0;
}

getchar()函数getchar()是 C 语言中的一个输入函数,它从标准输入(通常是键盘)读取一个字符,并返回该字符的 ASCII 码值。这个值被赋给变量ch

循环条件(ch = getchar())!= '\n'表示只要从输入读取到的字符不是换行符\n,循环就会继续执行。这里要注意ch = getchar()是一个赋值表达式,整个表达式的值就是ch的值(即刚读取到的字符的 ASCII 码值),将其与\n的 ASCII 码值进行比较,来决定是否继续循环。

6.10 辗转相除法求最大公约数

题目描述:输入两个正整数m和n,求其最大公约数和最小公倍数。

输入:输入两个正整数m和n,用空格隔开。

输出:分别输出m和n的最大公约数和最小公倍数,用空格隔开。请注意行尾输出换行。

#include <stdio.h>int main() {int m, n, a, b, temp;scanf("%d %d", &m, &n);a = m;b = n;// 使用辗转相除法求最大公约数while (b!= 0) {temp = b;b = a % b;a = temp;}// 输出最大公约数printf("%d ", a);// 计算并输出最小公倍数printf("%d\n", m * n / a);return 0;
}

6.11 getchar的再使用

题目描述:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

输入:一行字符。

输出:分别输出这行字符中的英文字母、空格、数字和其他字符的个数,用空格隔开。请注意行尾输出换行。

#include <stdio.h>int main() {int letterCount = 0;int spaceCount = 0;int digitCount = 0;int otherCount = 0;char ch;while ((ch = getchar()) != '\n' && ch != EOF) {if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {letterCount++;}else if (ch == 32) {spaceCount++;}else if (ch >= '0' && ch <= '9') {digitCount++;}else {otherCount++;}}printf("%d %d %d %d\n", letterCount, spaceCount, digitCount, otherCount);return 0;
}

6.12 适时加入中间变量temp

题目描述:求 的值,其中a是一个数字,n表示a的位数,例如:2+22+222+2222+22222(此时n=5)

输入:两个整数a和n。

输出:计算出的Sn的值。请注意行尾输出换行。

#include<stdio.h>
int main(){int a=0;int n=0;int Sn=0;int temp=0;scanf("%d%d",&a,&n);for(int i=1;i<=n;i++){temp=temp*10+a;Sn+=temp;}printf("%d\n",Sn);return 0;
}

6.13 迭代求和

题目描述

输入:无

输出:题目描述中算式的值。请注意行尾输出换行。

#include <stdio.h>int f(int n) {if (n == 0 || n == 1) {return 1;}else {return n * f(n - 1);}
}int main() {int sum = 0;for (int i = 1; i <= 10; i++) {sum += f(i);}printf("%d\n", sum);return 0;
}

6.15 水仙花数

题目描述:输出所有“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个“水仙花数”,因为153=13+53+33。

输入:无

输出:所有“水仙花数”,在每一个数之后输出一个空格。请注意行尾输出换行。

#include <stdio.h>int main() {int num;for (num = 100; num < 1000; num++) {int bai = num / 100;int shi = (num / 10) % 10;int ge = num % 10;int sum = bai * bai * bai + shi * shi * shi + ge *ge * ge;if (sum == num) {printf("%d\n", num);}}return 0;
}

6.16 完数和因子

题目描述:一个数如果恰好等于它的因子之和,这个数就被称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。找出1000之内的所有完数,并输出。

输入:无

输出:每一个完数一行。在每一行中,首先输出这个完数的值,再输出一个冒号,之后从小到大输出这个完数的所有因子,在每个因子前输出一个空格。请注意行尾输出换行。

#include <stdio.h>int main() {int i, j, sum;for (i = 2; i <= 1000; i++) {  // 从2开始,因为1不是完数的讨论范围sum = 0;for (j = 1; j < i; j++) {if (i % j == 0) {sum += j;}}if (sum == i) {printf("%d:", i);for (j = 1; j < i; j++) {if (i % j == 0) {printf(" %d", j);}}printf("\n");}}return 0;
}

6.17 迭代斐波那契求和

题目描述:有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13,…求出这个序列的前20项之和。

输入:无

输出:题目描述中的前20项之和,保留4位小数。请注意行尾输出换行。

#include <stdio.h>double fib(int n) {if (n == 1 || n == 2) {return 1;}double a = 1, b = 1, temp;for (int i = 3; i <= n; i++) {temp = a + b;a = b;b = temp;}return b;
}int main() {double sum = 0;double zi = 2, mu = 1;for (int i = 0; i < 20; i++) {sum += zi / mu;double temp = zi;zi = zi + mu;mu = temp;}printf("%.4f\n", sum);return 0;
}

6.21 牛顿迭代法

题目描述:用牛顿迭代法求以下方程在1.5附近的根

输入:无

输出: 输出牛顿迭代法求出的根,保留4位小数。 请注意行尾输出换行。

#include <stdio.h>// 定义方程 f(x)
double f(double x) {return 2 * x * x * x - 4 * x * x + 3 * x - 6;
}// 手动计算导数 f'(x)
double df(double x) {return 6 * x * x - 8 * x + 3;
}int main() {double x = 1.5;  // 初始值double x_next;do {x_next = x - f(x) / df(x);if ((x_next - x) > 0) {if (x_next - x < 1e-6) break;}else {if (x - x_next < 1e-6) break;}x = x_next;} while (1);printf("%.4lf\n", x);return 0;
}

6.22 二分法

题目描述:用二分法求以下方程在(-10, 10)之间的根:

保证此函数在以上区间中是单调递增的。

输入:无

输出:输出二分法求出的根,保留4位小数。请注意行尾输出换行。

#include <stdio.h>// 定义要求解的方程
double equation(double x) {return 2 * x * x * x - 4 * x * x + 3 * x - 6;
}int main() {double left = -10;double right = 10;double mid;double precision = 1e-4;while ((right - left) > precision) {mid = (left + right) / 2;double value = equation(mid);if (value == 0) {break;}else if (value > 0) {right = mid;}else {left = mid;}}printf("%.4lf\n", (left + right) / 2);return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com