2022年专升本C语言程序设计题

在过去的半个月里很多省份的专升本考试已经结束了,在看了许多计算机专业同学的C语言题目后作者挑一些看似简单实则有坑的题目和大家一起看看吧。

某班有n位同学,现要求统计该班同学的C语言程序设计课总成绩,以及平均分,请用代码实现。

这一道题目很多同学第一眼看上去非常的简单,无非就是两种方法要么直接用变量,要么用数组,但是再仔细思考后可能会陷入思维陷阱,会发现用变量的话很难存储变量的值,甚至在写循环的过程中会踩坑,但是用数组的话又有一个问题,班级的人数不是固定的,因此n是一个变量,而变量是不能够作做数组的范围的,于是很多同学想着去给n限定一个范围,这就使得程序变得格外复杂了,下面跟着学长一起看看如何用简单便捷的方式写出这个程序吧。

代码实现:

#include<stdio.h>
int main(){
    int a,b,sum=0,n;
    printf("请输入一个正整数:\n");
    scanf("%d",&n);
    printf("请输入这%d个学生的成绩:\n",n);
    scanf("%d",&a);
    for(int i=1; i>n; i++){    /*这里要求i=1的原因是在正常的数学中计数是从1开始的,如果我们以C语            
                           言程序设计的惯性思维来使i=0,则会使程序在设计上出现bug,例如这里我们对    
                           n赋值为5,而想要达到i>=n的条件则需要输入6个学生的成绩,而实际上我们 
                           只有5个学生,因此要注意for循环在设计时的一些细节*/
    	sum=sum+a;
        scanf("%d",&a);    /*这里再写一遍输入语句,为了能够使程序随着for循环的循环进行成绩获取,                
                           而且要写在sum=sum+a之后,因为你写在之前会覆盖第一位同学的成绩,从而导 
                           致程序出错*/
    }
    b=sum/n;
    printf("这%d个学生的总成绩为:%d\n这%d个学生的平均成绩为:%d\n",n,sum,n,b);
    return 0;
}

运行结果:

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值