目录
1.给出一批百分制成绩,输出对应的成绩等级A、B、C、D、E
2.求S=1+(1+2)+(1+2+3)+......+(1+2+3+......+n)
1.给出一批百分制成绩,输出对应的成绩等级A、B、C、D、E
/* 给出一批百分制成绩,要求输出对应的成绩等级A、B、C、D、E。
90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
输入
第1行:这批成绩的数目 第2行:用空格分隔的一批百分制成绩(每个成绩为一个0至100之间的整数)
输出
用空格分隔的五分制成绩(A-E之间的大写字母)
输入样例:
4
100 70 65 43
输出样例:
A C D E */
//法一 for循环、if
#include<iostream>
void pr(int n);
using namespace std;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int num;
cin>>num;
pr(num);
if(i!=n-1) cout<<" "; //最后一次循环时i=n-1
}
return 0;
}
void pr(int n){
if(n>=90) cout<<"A";
if(n>=80&&n<=89) cout<<"B"; //if必须要将条件写完整
if(n>=70&&n<=79) cout<<"C";
if(n>=60&&n<=69) cout<<"D";
if(n<60) cout<<"E";
}
//法二 while循环、else if
#include<iostream>
void pr(int n);
using namespace std;
int main(){
int n,i=0; //i的值要设为0
cin>>n;
while(n--){ //while(n--)执行步骤:
//1.先取n的值判断是否为0,是的话跳出循环
//2.不是的话执行n=n-1
//3.然后执行while循环
int num;
cin>>num;
pr(num);
if(i!=n) cout<<" "; //最后一次循环时n的值为0
}
return 0;
}
void pr(int n){
if(n>=90) cout<<"A";
else if(n>=80) cout<<"B"; //else if条件句可以排除掉前面的情况
else if(n>=70) cout<<"C";
else if(n>=60) cout<<"D";
else cout<<"E";
}
2.求S=1+(1+2)+(1+2+3)+......+(1+2+3+......+n)
/* 求S=1+(1+2)+(1+2+3)+......+(1+2+3+......+n)
输入 一个正整数
输出 输出S的值
输入样例: 3
输出样例: 10
提示 不能用两重循环实现,否则会出现超时。 */
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int num=0,sum=0;
for(int i=1;i<=n;i++){
num+=i;
sum+=num; //在一次循环中直接进行两次处理,将结果进行迭代
}
cout<<sum<<endl;
return 0;
}
3. 用循环输出形如下述的图形:
/* 用循环输出形如下述的图形:
*
***
*****
*******
*********
输入 一个正整数1<=n<=10(对错误输入不进行检查和处理)。
输出 输出上述图形(n行)
输入样例
2
输出样例
*
*** */
//法一
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){ //总共有n行
for(int j=1;j<=n-i;j++){ //对第一行来说,每次的空格数都是n-1
//每增加一行,加在"*"前面的空格数-1,由外面for循环的i--控制
cout<<" ";
}
for(int k=1;k<=2*i-1;k++){ //每行的"*"数都是2i-1
cout<<"*";
}
cout<<endl; //行末进行换行
}
return 0;
}
//法二
#include<iostream>
using namespace std;
int main(){
int n,cnt=1;
cin>>n;
for(;n>1;n--){ //除去最后一行(单独讨论)
for(int j=n-1;j>=1;j--){ //对第一行来说,每次的空格数都是n-1
//每增加一行,加在"*"前面的空格数-1,由外面for循环的n--控制
cout<<" ";
}
for (int k=cnt;k>=1;k--){ //cnt数就是"*"数
cout<<"*";
}
cout<<endl; //每行最后进行换行
cnt+=2; //行数+1,"*"数+2
}
for(;cnt>0;cnt--){
cout<<"*"; //单独输出最后一行,"*"前面没有空格,"*"的个数即为cnt
}
return 0;
}