结构体、枚举、函数定义
Q1:结构体
题1:成绩统计
输入N个学生的姓名和语文、数学的得分,按总分从高到低输出,分数相同的按输入先后输出。
做题连接:http://oj.jiefanedu.com:5283/problem/11589
Code
#include<bits/stdc++.h>
using namespace std;
struct Student{
string name;
int chinese;
int math;
};
bool cmp(Student a,Student b){
return a.math+a.chinese>b.math+b.chinese;
}
int main(){
//输入N个学生的姓名和语文、数学的得分,按总分从高到低输出,分数相同的按输入先后输出。
int n;
cin>>n;
Student student[n];
for(int i=0;i<n;i++){
cin>>student[i].name;
cin>>student[i].chinese;
cin>>student[i].math;
}
sort(student,student+n,cmp);
for(int i=0;i<n;i++){
cout<<student[i].name<<' '<<student[i].chinese<<' '<<student[i].math<<' '<<student[i].chinese+student[i].math<<endl;
}
return 0;
}
Q2枚举
题1:星期匹配
使用枚举的方式,当键盘输入1-7时,输出相应的星期,输入其他输出input error
Code
#include<bits/stdc++.h>
using namespace std;
enum Day{
Monday=1,
Tuesday,
Wednesday,
Thursday,
Firday,
Saturday,
Sunday
};
int main(){
int day;
cin>>day;
switch(day){
case Monday: cout<<"Monday"; break;
case Tuesday: cout<<"Tuesday"; break;
case Wednesday: cout<<"Wednesday"; break;
case Thursday: cout<<"Thursday"; break;
case Firday: cout<<"Firday"; break;
case Saturday: cout<<"Saturday"; break;
case Sunday: cout<<"Sunday"; break;
default :
cout<<"input errot";break;
}
return 0;
}
Q3函数定义
某数出现的次数——题1
试计算在区间 1 到 n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在1-11中,即1,2,3,4,5,6,7,8,9,10,11中,数字1出现了四次
Code
#include<bits/stdc++.h>
using namespace std;
int getCount(int n,int number);//函数声明,在main函数之后则需要声明
int main(){
int n=0,number=0,count=0;
cin>>n>>number;
for(int i=1;i<=n;i++){
count+=getCount(i,number);
}
cout<<count;
return 0;
}
//函数的定义
int getCount(int n,int number){
int count=0;
while(n!=0){
if(n%10==number)
count++;
n/=10;
}
return count;
}