結構體、列舉、函式定義
阿新 • • 發佈:2018-11-09
結構體、列舉、函式定義
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; }