4月7日,更新一下作业预告:百分制成绩转换为五分制成绩;平均成绩、最高分和最低分;累加实验;所有素数正常算法和布尔值加入的算法;还好还好,

第一题:

编程实现,将一个百分制成绩转换为五分制成绩。转换原则,当成绩大于或等于90分为A,小于90分且大于等于80分为B,小于80分且大于等于70分为C,小于70分且大于等于60分为D;小于60分为E。(要求用switch语句)

cpp 复制代码
#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

cpp 复制代码
#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=1 100 k + k=1 50 k 2 + k=1 10 1k

cpp 复制代码
#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

cpp 复制代码
#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间的所有素数

cpp 复制代码
#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,表示程序正常结束  
}

解释:

  1. 首先,我们使用了#include <stdio.h>#include <math.h>来包含标准输入输出和数学函数库。

  2. main()函数是程序的入口。在这个函数中,我们使用了一个for循环,从2开始逐个检查每个数,直到100为止。

  3. 对于每个数n,我们首先检查是否小于等于3。因为2和3都是素数,所以我们直接打印出它们,并使用continue语句跳过后面的步骤。

  4. 如果n不小于等于3,我们再检查是否为偶数,如果是偶数则直接跳过,因为除了2以外,偶数都不可能是素数。

  5. 如果n既不是2也不是偶数,我们使用sqrt()函数计算n的平方根,并将结果存储在k中。这是因为一个数的因子(除了1以外)最大不可能超过其平方根。

  6. 接下来,我们使用一个for循环从3开始逐个检查n是否有奇数因子。我们逐步增加j的值,直到它大于k为止。

  7. 在循环中,如果我们找到了n的一个奇数因子,就会使用break语句跳出循环,因为这意味着n不是一个素数。

  8. 如果循环结束后j的值大于k,说明我们没有找到n的任何因子,这时我们打印出n是一个素数。

  9. 整个过程会不断重复,直到检查完2到100之间的所有数为止。

学过布尔值的可以这么写

cpp 复制代码
#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;  
}
相关推荐
白狐_79836 分钟前
408数据结构第5章:树与二叉树②——遍历、线索树、森林与哈夫曼
数据结构·算法·深度优先
小僧景贤2 小时前
嵌入式C语言 第二篇:基础语法|嵌入式C与标准C的核心差异
c语言·开发语言·嵌入式c语言
Jasmine_llq2 小时前
《P15800 [GESP202603 六级] 选数》
数据结构·long long·逆序线性 dp·从后往前推导·转移严格遵循题意·防止总和溢出·复杂度on
疯狂打码的少年2 小时前
【数据结构】串(字符串):基本概念与存储
数据结构·笔记
for_ever_love__3 小时前
python基础语法学习: 数据容器
windows·python·学习
云空3 小时前
《电子专业完整学习路线图(分两套:本科四年版 / 零基础自学速成版)》
科技·学习·学习方法·高考
min(a,b)3 小时前
学习第16天:LangGraph 与 Agent 工作流编排
学习
woshihuanglaoshi3 小时前
鸿蒙技术进阶全景高级成长体系:从初中级到架构师的技能树/学习路径/项目实战/认证体系系统性方法论
学习·华为·harmonyos
AI即插即用4 小时前
即插即用系列 | IEEE TMI PLG-HN:原型学习引导的 CNN-Transformer 混合网络,攻克乳腺肿瘤分割难题
人工智能·深度学习·神经网络·学习·目标检测·cnn·transformer
致Great4 小时前
科研人的 AI,不该只回答问题:我用字节TraeWork 跑了一遍真实研究任务
算法