置頂隨筆
#
怎么這樣這樣?
下面是提交后的顯示:
編譯失敗...|錯誤號:1
MyProger\Prog69647.cpp:24: error: expected `;' before '(' token
MyProger\Prog69647.cpp:27: error: expected `;' before "int"
MyProger\Prog69647.cpp: In function `int main()':
MyProger\Prog69647.cpp:59: error: 'class Student' has no member named 'add'
高手們大俠們救命阿!
//=====================
#include<iostream>
#include<iomanip>
using namespace std;
//---------------------------------------------
class Student{
string name;
int mark;
int classmark;
char isganbu;
char isxibu;
int lw;
int jxj;
public :
void set(string na, int ma, int cl, char isga,char isxi,int l, int jx){
name=na;mark=ma;classmark=cl;isganbu=isga;isxibu=isxi;lw=l;jxj=jx;
}
bool isys();
bool isws();
bool iscj();
bool isxb();
bool isbj();
void sumjxj(){
if(isys()) jxj+=8000;
if(isws()) jxj+=4000;
if(iscj()) jxj+=2000;
if(isxb()) jxj+=1000;
if(isbj()) jxj+= 850;
}
int add(& sum){
sum=sum+jxj ;
}
int mmax(string & name1,int & jxj1){
if(jxj>jxj1){ name1=name;jxj1=jxj ;}
}
};
//-------------------------------------
bool Student::isys(){
return (mark>80&&lw>0);
}
bool Student::isws(){
return (mark>85&&classmark>80 );
}
bool Student::iscj(){
return (mark>90);
}
bool Student::isxb(){
return (mark>85&&isxibu=='Y');
}
bool Student::isbj(){
return (classmark>80&&isganbu=='Y');
}
//---------------------------------------
int main(){
string name1=" "; int jxj1=0; int sum=0;
int n; cin>>n;
for(;n;n--){
Student x;
string na; int ma; int cl; char isga;char isxi;int l; int jx=0;
cin>>na>>ma>>cl>>isga>>isxi>>l;
//jx=0;
x.set(na,ma,cl,isga,isxi,l,jx);
x.sumjxj();
x.add(sum);
x.mmax(name1,jxj1);
}
cout<<name1<<'\n';
cout<<jxj1<<'\n';
cout<<sum<<'\n';
}
描述 Description |
|
|
某校的慣例是在每學(xué)期的期末考試之后發(fā)放獎學(xué)金。發(fā)放的獎學(xué)金共有五種,獲取的條件各自不同:
1) 院士獎學(xué)金,每人8000元,期末平均成績高于80分(>80),并且在本學(xué)期內(nèi)發(fā)表1篇或1篇以上論文的學(xué)生均可獲得;
2) 五四獎學(xué)金,每人4000元,期末平均成績高于85分(>85),并且班級評議成績高于80分(>80)的學(xué)生均可獲得;
3) 成績優(yōu)秀獎,每人2000元,期末平均成績高于90分(>90)的學(xué)生均可獲得;
4) 西部獎學(xué)金,每人1000元,期末平均成績高于85分(>85)的西部省份學(xué)生均可獲得;
5) 班級貢獻(xiàn)獎,每人850元,班級評議成績高于80分(>80)的學(xué)生干部均可獲得;
只要符合條件就可以得獎,每項獎學(xué)金的獲獎人數(shù)沒有限制,每名學(xué)生也可以同時獲得多項獎學(xué)金。例如姚林的期末平均成績是87分,班級評議成績82分,同時他還是一位學(xué)生干部,那么他可以同時獲得五四獎學(xué)金和班級貢獻(xiàn)獎,獎金總數(shù)是4850元。
現(xiàn)在給出若干學(xué)生的相關(guān)數(shù)據(jù),請計算哪些同學(xué)獲得的獎金總數(shù)最高(假設(shè)總有同學(xué)能滿足獲得獎學(xué)金的條件)。
|
|
|
|
|
|
|
|
輸入格式 Input Format |
|
|
輸入的第一行是一個整數(shù)N(1 <= N <= 100),表示學(xué)生的總數(shù)。接下來的N行每行是一位學(xué)生的數(shù)據(jù),從左向右依次是姓名,期末平均成績,班級評議成績,是否是學(xué)生干部,是否是西部省份學(xué)生,以及發(fā)表的論文數(shù)。姓名是由大小寫英文字母組成的長度不超過20的字符串(不含空格);期末平均成績和班級評議成績都是0到100之間的整數(shù)(包括0和100);是否是學(xué)生干部和是否是西部省份學(xué)生分別用一個字符表示,Y表示是,N表示不是;發(fā)表的論文數(shù)是0到10的整數(shù)(包括0和10)。每兩個相鄰數(shù)據(jù)項之間用一個空格分隔。
|
|
|
|
|
|
|
|
輸出格式 Output Format |
|
|
輸出包括三行,第一行是獲得最多獎金的學(xué)生的姓名,第二行是這名學(xué)生獲得的獎金總數(shù)。如果有兩位或兩位以上的學(xué)生獲得的獎金最多,輸出他們之中在輸入文件中出現(xiàn)最早的學(xué)生的姓名。第三行是這N個學(xué)生獲得的獎學(xué)金的總數(shù)。
|
in
4
YaoLin 87 82 Y N 0
ChenRuiyi 88 78 N Y 1
LiXin 92 88 N N 0
ZhangQin 83 87 Y N 1
out
ChenRuiyi
9000
28700
//===========================
#include<iostream>
#include<iomanip>
//========================
using namespace std;
class Date{
int year,month,day;
public:
bool isleapyear(){
return(year%4==0&&year%100!=0)||(year%400==0);
}
void print(){
cout<<setfill('0');
cout<<setw(4)<<year<<'-'<<setw(2)<<month<<'-'<<setw(2)<<day<<'\n';
cout<<setfill(' ');
}
void set(int y,int m,int d){
year=y; month=m; day=d;
}
};
//--------------------------
int main(){
Date kk;
int n;cin>>n;
for(int i=1;i<=n;i++){
int y;int m;int d;
cin>>y>>m>>d; // kk.set(1000,8,16);
kk.set(y,m,d);
if(kk.isleapyear()) kk.print();
else cout<<"notleap\n";
}
cout<<"over"<<'\n';
}
//--------------------------
想用類做8個排序算法 有點(diǎn)沒有頭緒阿
Sorting by Swapping
Time Limit:1000MS Memory Limit:10000K
Total Submit:2515 Accepted:1374
Description
Given a permutation of numbers from 1 to n, we can always get the sequence 1, 2, 3, ..., n by swapping pairs of numbers. For example, if the initial sequence is 2, 3, 5, 4, 1, we can sort them in the following way:
2 3 5 4 1
1 3 5 4 2
1 3 2 4 5
1 2 3 4 5
Here three swaps have been used. The problem is, given a specific permutation, how many swaps we needs to take at least.
Input
The first line contains a single integer t (1 <= t <= 20) that indicates the number of test cases. Then follow the t cases. Each case contains two lines. The first line contains the integer n (1 <= n <= 10000), and the second line gives the initial permutation.
Output
For each test case, the output will be only one integer, which is the least number of swaps needed to get the sequence 1, 2, 3, ..., n from the initial permutation.
Sample Input
2
3
1 2 3
5
2 3 5 4 1
Sample Output
0
3