34: 计算函数
#include "stdio.h"
int main(){
int y,x;
scanf("%d",&x);
if(x<1){
y=x;
}else if(x<10){
y=2*x-1;
}else{
y=3*x-11;
}
printf("%d\n",y);
}
35: 成绩的等级
#include "stdio.h"
int main() {
// 给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E
int score;
scanf("%d",&score);
if(score>=90){
printf("A\n");
} else if(score>=80){
printf("B\n");
} else if(score>=70){
printf("C\n");
} else if(score>=60){
printf("D\n");
} else{
printf("E\n");
}
}
37: 利润提成
#include "stdio.h"
int main() {
int bonus,profit;
scanf("%d",&profit);//记住用int型,因为题目要求输入整数,不要用%f
if(profit<=100000){
bonus = profit*0.1;
} else if(profit<=200000){
bonus = 100000*0.1+(profit-100000)*0.075;
} else if(profit<=400000){
bonus = 100000*(0.1+0.075)+(profit-200000)*0.05;
} else if(profit<=600000){
bonus = 100000*(0.1+0.075)+200000*0.05+(profit-400000)*0.03;
} else if(profit<=1000000){
bonus = 100000*(0.1+0.075)+200000*0.05+200000*0.03+(profit-600000)*0.015;
} else {
bonus = 100000*(0.1+0.075)+200000*0.05+200000*0.03+400000*0.015+(profit-1000000)*0.01;
}
printf("%d\n",bonus);
}
39: 字符个数
#include<stdio.h>
#include<string.h>
int main(){
char s;
int letter=0,num=0,black=0,other=0;
while((s=getchar())!='\n'){//这里以低昂要加上括号,不然不对
if( (s>='A' && s<='Z') || (s>='a' && s<='z')){
letter++;
}else if(s>='0' && s<='9'){
num++;
}else if(s==32){//空格的ASCII==32
black++;
}else{
other++;
}
};
printf("%d %d %d %d\n",letter,num,black,other);
}
注意以下使用puts( )读入字串,Clion中答案虽然正确,但是OJ中会报错!!!!
#include<stdio.h>
#include<string.h>
int main(){
char s[101];
int length;
int letter=0,num=0,black=0,other=0;
gets(s);
length = strlen(s);
for(int i=0;i<length;i++){
//A-65 a-97
if(s[i]>='A' && s[i]<='Z' || s[i]>='a' && s[i]<='z'){
letter++;
}else if(s[i]>='0' && s[i]<='9'){
num++;
}else if(s[i]==32){//空格的ASCII==32
black++;
}else{
other++;
}
}
printf("%d %d %d %d\n",letter,num,black,other);
}
即使Clion中可以通过,但是OJ却说gets函数是危险的,不要使用。这里我引入另一位博主的文章片段
函数执行需要一个栈空间,但这个栈空间容量是有限的,而且栈里存放了函数返回的地址。gets()函数在获取输入时,如果无限输入会造成栈空间溢出,在程序返回时,不能正常的找到返回地址,程序将发生不可预测行为
45: 分数求和
#include<stdio.h>
int main(){
int a=1,b=2,n;
float sum=0;
int temp;
scanf("%d",&n);
for(int i=0;i<n;i++){
sum+=(1.0)*b/a;
temp=a;
a=b;
b=temp+a;
}
printf("%.2f\n",sum);
}