C语言刷题
博主用的刷题网站:题库 - 蓝桥云课 (lanqiao.cn)
小伙伴们可以去试试!!!
First question
题目:成绩统计
题目描述:小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
输入描述
输入的第一行包含一个整数 n (1≤n≤10^4),表示考试人数。
接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
输入输出样例
示例
输入
7
80
92
56
74
88
100
0
输出
71%
43%
思路:先输入总的有多少个人,将他们的分数可以放在一个数组中,然后在用for循环,将分数为60-85的个数计数,再将分数在85以上的计数,在分别计算两类的比例,注意在c语言中表达%时,写代码的时候是用两个%%代替。
Demo:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int peopleNumber = 0;
int arr[10] = { 0 };
float pass = 0.0;
int count = 0;
int count2 = 0;
float outstanding = 0.0;
printf("请输入人数:\n");
scanf("%d", &peopleNumber);
for (int i = 0; i < peopleNumber; i++)
{
scanf("%d", &arr[i]);
}
for (int j = 0; j < peopleNumber; j++)
{
if (arr[j] >= 60)
{
count++;
}
if (arr[j] >= 85)
{
count2++;
}
}
pass = (count *100)/( peopleNumber*1.0);
outstanding = (count2*100) / (peopleNumber*1.0);
printf("%.0f%%\n", pass);
printf("%.0f%%\n", outstanding);
return 0;
}
Second question
题目:饮料换购
题目描述:乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。
输入描述
输入一个整数n(0<n<1000),表示开始购买的饮料数量。
输出描述
输出一个整数,表示实际得到的饮料数
输入输出样例
示例
输入
100
输出
149
思路:用一个循环即可,因为是每三个瓶盖换一瓶,我们用1——最开始的总的瓶数去%3,如果这个结果等于0,就说明为3的倍数,那么总瓶数+1,直到循环条件i<=n。
Demo:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
if(i%3==0)
n++;
printf("%d",n);
return 0;
}