1. 程式人生 > >結構體、列舉、函式定義

結構體、列舉、函式定義

結構體、列舉、函式定義

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;
}