本文主要是介绍4月7日,更新一下作业预告:百分制成绩转换为五分制成绩;平均成绩、最高分和最低分;累加实验;所有素数正常算法和布尔值加入的算法;还好还好,,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一题:
编程实现,将一个百分制成绩转换为五分制成绩。转换原则,当成绩大于或等于90分为A,小于90分且大于等于80分为B,小于80分且大于等于70分为C,小于70分且大于等于60分为D;小于60分为E。(要求用switch语句)
#include<stdio.h>
int main()
{int a=0, b;printf("请输入百分制成绩:");scanf("%d", &a);b = a / 10;switch (b){case 9:printf("A"); break;case 8:printf("B"); break;case 7:printf("C"); break;case 6:printf("D"); break;default:printf("E"); break;}return 0;
}
第二题:
编程实现,从键盘上输入10个学生的成绩,求平均成绩、最高分和最低分。
输入测试数据:34 56 87 90 87 65 78 87 96 69
程序运行结果:max=96 min=34 avg=74.90
#include<stdio.h> int main()
{ int i, sum = 0, max = 0, min, score; float avg; // 初始化min为可能的最大值,这样第一个成绩输入后一定会更新min min = 100; // 循环输入10个学生的成绩 for (i = 0; i < 10; i++) { printf("请输入第%d个学生的成绩:\n", i+1); scanf("%d", &score); // 累加成绩 sum += score; // 更新最高分 if (score > max) { max = score; } // 更新最低分 if (score < min) { min = score; } } // 计算平均分 avg = (float)sum / 10; // 输出结果 printf("平均成绩为:%.2f\n", avg); printf("最高分为:%d\n", max); printf("最低分为:%d\n", min); return 0;
}
第三题:
编程实现,求k=1100k+k=150k2+k=1101k
#include<stdio.h>
int main()
{int k,a=0, b=0;float c = 0;for ( k = 1; k <=100; k++){a += k;}for ( k = 1; k <= 50; k++){b += (k * k);}for ( k = 1; k <=10; k++){c += (1.0 / k);}printf("第一个求和项 :%d\n", a);printf("第二个求和项 :%d\n", b);printf("第三个求和项 :%f\n", c);printf("总和 = %f\n", a+b+c);
}
第四题:
编程实现,计算
在C语言中可调用log(n)求ln(n)。提示2:用数学函数需用#include<math.h>。
输入测试数据:20
程序的运行结果为 6.506583
#include<stdio.h>
#include<math.h>
int main()
{int i = 1,m;double s = 0;scanf("%d", &m);for ( i = 1; i <= m; i++){s += log(i);}printf("s=%lf", sqrt (s));
}
第五题:
编程实现,求2~100间的所有素数
#include <stdio.h>
#include <math.h> int main() {int n, j, k;for (n = 2; n <= 100; n++) { // 循环从2开始到100结束 if (n <= 3) { // 2和3都是素数,直接打印 printf("%d is a prime number\n", n);continue;}if (n % 2 == 0) continue; // 跳过偶数 k = sqrt(n);for (j = 3; j <= k; j += 2) { // 检查奇数因子 if (n % j == 0) break; // 如果找到因子,跳出循环 }if (j > k) { // 如果没有找到因子,打印素数 printf("%d is a prime number\n", n);}}return 0; // 主函数返回0,表示程序正常结束
}
解释:
首先,我们使用了
#include <stdio.h>
和#include <math.h>
来包含标准输入输出和数学函数库。
main()
函数是程序的入口。在这个函数中,我们使用了一个for
循环,从2开始逐个检查每个数,直到100为止。对于每个数
n
,我们首先检查是否小于等于3。因为2和3都是素数,所以我们直接打印出它们,并使用continue
语句跳过后面的步骤。如果
n
不小于等于3,我们再检查是否为偶数,如果是偶数则直接跳过,因为除了2以外,偶数都不可能是素数。如果
n
既不是2也不是偶数,我们使用sqrt()
函数计算n
的平方根,并将结果存储在k
中。这是因为一个数的因子(除了1以外)最大不可能超过其平方根。接下来,我们使用一个
for
循环从3开始逐个检查n
是否有奇数因子。我们逐步增加j
的值,直到它大于k
为止。在循环中,如果我们找到了
n
的一个奇数因子,就会使用break
语句跳出循环,因为这意味着n
不是一个素数。如果循环结束后
j
的值大于k
,说明我们没有找到n
的任何因子,这时我们打印出n
是一个素数。整个过程会不断重复,直到检查完2到100之间的所有数为止。
学过布尔值的可以这么写
#include <stdio.h>
#include <stdbool.h> bool is_prime(int num) { if (num <= 1) { return false; } for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return false; } } return true;
} int main() { printf("2到100之间的所有素数为:\n"); for (int i = 2; i <= 100; i++) { if (is_prime(i)) { printf("%d ", i); } } printf("\n"); return 0;
}
这篇关于4月7日,更新一下作业预告:百分制成绩转换为五分制成绩;平均成绩、最高分和最低分;累加实验;所有素数正常算法和布尔值加入的算法;还好还好,的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!