C语言/C++常见习题问答集锦(三十五)之意犹未尽

C语言/C++常见习题问答集锦(三十五)之意犹未尽

程序之美

在这里插入图片描述

1、c语言编程题: 输入n个学生的姓名和百分制成绩,分段统计学生的成绩。
输入格式:
输入在第一行中给出正整数N(1≤n≤100)。随后N行,每行给出一位学生的姓名和成绩,中间以空格分隔。
输出格式:
在一行中顺序输出成绩为80-100分、60-79分、0-59分的学生人数,中间以空格分隔。
输入样例:
5
huanglan 83
wanghai 76
shenqiang 50
zhangfeng 95
zhangmeng 60
输出样例:
2 2 1

C语言版本:

#include<stdio.h>
#define MAXN 100
struct student
{
char name[20];
int score;
};
void cnt_score( struct student *p, int n );
int main()
{
int i, n;
struct student stu[MAXN];
scanf("%d", &n);
for(i = 0; i < n; i++)
{
scanf("%s %d", stu[i].name, &stu[i].score);
}
cnt_score(stu, n);
return 0;
}
void cnt_score(struct student *p, int n)
{
int cnt_a = 0, cnt_p = 0, cnt_f = 0;
struct student *q=p+n-1;
while ( p <= q )
{
if ((*p).score>=80&&(*p).score<=100) cnt_a++;
else if ((*p).score>=60&&(*p).score<=79) cnt_p++;
else cnt_f++;
p++;
}
printf("%d %d %d\n", cnt_a, cnt_p, cnt_f);
}

C++版本:

#include <iostream>
using namespace std;
int main()
{
int i,n,count[6]={0,0,0,0,0,0};
cout<<"输入要统计的学生人数:"<<endl;
cin>>n;
int *score=new int[n];
cout<<"输入"<<n<<"位学生成绩:"<<endl;
for(i=0;i<n;++i)
cin>>score[i];
for(i=0;i<n;++i)
{
if(score[i]<60)
count[0]++;
else if(score[i]<=69&&score[i]>=60)
count[1]++;
else if(score[i]<=79&&score[i]>=70)
count[2]++;
else if(score[i]<=89&&score[i]>=80)
count[3]++;
else if(score[i]<=99&&score[i]>=90)
count[4]++;
else if(score[i]==100)
count[5]++;
}
cout<<"统计结果如下:"<<endl;
for(i=0;i!=6;++i)
cout<<count[i]<<" ";
cout<<endl;
delete [] score;
return 0;
}

在这里插入图片描述

2、编写一个程序,其中包括一个函数,该函数将比较两个相同大小的数组中的值。如果两个数组中的元素相同,则函数返回1,否则返回0。在函数中声明两个数组,每个有五个元素。通过使用该函数进行比较,并显示结果。

#include<stdio.h>

int compare(int* a, int *b){
	int i,j;
	for(i=0;i<5;i++){
		for(j= i + 1;j<5;j++){
			if (a[i] != b[j])
			{
				return 0;
			}
		}
	}

	return 1;
}
int main()
{
	int a[5],b[5],i;
	printf("输入数组a的元素:\n");
	for(i=0;i<5;i++)
		scanf("%d",&a[i]);
	printf("输入数组b的元素:\n");
	for(i=0;i<5;i++)
		scanf("%d",&b[i]);
	printf("%d,%d",a[i],b[i]);

	int ret = compare(a,b);

	printf("两个数组中的元素%s\n", ret == 1 ? "相同":"不相同");

	return 0;
	
}

结果为:
在这里插入图片描述
题目描述
找出一批圆中面积最小的圆,输出它的编号和面积。
输入
第一行一个整数n(n<100);
第二行n个以空格相隔的整数(每个数在[1,10000])。

输出
最大值和最大值的编号,它们之间以空格相隔;
样例输入 Copy
6
12 36 124 654 325 45
样例输出 Copy
12 1

未完待续…

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值