[蓝蓝计算机考研算法]-day8成绩转换&&数值统计

158 阅读1分钟

成绩转换

输入一个百分制的成绩M,将其转换成对应的等级,具体转换规则如下:

  • 90-100 为 A;

  • 80-89 为 B;

  • 70-79 为 C;

  • 60-69 为 D;

  • 0-59 为 E;

思路

用if-else if-else条件判断即可,对应的判断条件输出相对应的结果。

具体实现

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	if(n>=90 && n<=100)
		cout<<"A";
	else if(n>=80 && n<=89)
		cout<<"B";
	else if(n>=70 && n<=79)
		cout<<"C";
	else if(n>=60 && n<=69)
		cout<<"D";
	else
		cout<<"E";
	return 0;
}

数值统计

统计给定的n个数中,负数、零和正数的个数。

输入描述

输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个 数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。

输出描述

对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。

示例

输入:3 0 9 -1
输出:111

输入:2 -10 8
输出:101

思路

输入个数n,然后for循环输入n次,每次输入都对其进行判断是否>0、<0、=0,然后相应的计数器加1。最后输出计数器的值。

具体实现

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	int x;
	while(cin>>n){ //输入多组数据 
		if(n>0){
			int a=0,b=0,c=0; //a:负数个数,b:0的个数,c:正数个数 
			for(int i=0; i<n; i++){
				cin>>x;
				if(x>0) c++;
				else if(x<0) a++;
				else b++;
			}			
			cout<<a<<b<<c;
			cout<<endl;
		}
		else return 0; //若=0或<0,直接结束程序
	}
	return 0;
}

小结

  • 两道题都不是很难,都应用if-else if-else进行条件判断,然后输出结果即可。但是写的时候还是会出错,检查之后发现是一些很小的语法格式出了问题。比如条件判断时双等号写成了单等号、定义变量时赋值为0的书写等等。格式要牢记,下次避免出错!

  • 一个等号表示赋值,双等号表示判断前后条件是否相等!