请看:
学校要招生了。满分为100分。其中,升学考试99~90的在一班,89~80的在二班……9分及以下的不录取。(因为这次题比较难,所以没有100分)请你编写出一段代码,帮校长梦回江南整理招生情况。
那么解题思路是什么呢?
1.if-else-if-……
别提这种方法了,我看的都麻烦。
#include<bits/stdc++.h>
using namespace std;
int n;
int a[55];
int sumnine,sumeight,sumseven……; //省略号是不想写了
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]/=10; //除是为了让100中情况变为10种
if(a[i]==9){
sumnine++;
else{
if(a[i]==8){
sumeight++;
}
else if(a[i]==0){
sumzero++;
……………… //省略号是不想写了
}
}
}
}
cout<<sumnine<<endl<<…………<<sumzero; //省略号是不想写了
return 0;
}
看的就很乱……
2.switch
#include<bits/stdc++.h>
using namespace std;
int n;
int a[55];
int sumnine,sumeight,sumseven……; //省略号是不想写了
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]/=10; //除是为了让100中情况变为10种
switch(a[i]){
case 9:
sumnine++;
break;
case 8:
sumeight++;
break;
………… //省略号是不想写了
case 0:
sumzero++;
break;
}
}
cout<<sumnine<<endl<<…………<<sumzero; //省略号是不想写了
return 0;
}
看着比if-else-if-……好看很多。
好了,同志们,让我们讲一讲switch该怎么用。
switch(讨论对象){
case n1: //当讨论对象等于n1时
表达式;
break;
…………
case nn:
表达式;
break;
}
就这样。(没啦,别看啦)
这道题还可以这样写:
#include<bits/stdc++.h>
using namespace std;
int n;
int a[55];
int sum[11];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]/=10;
sum[a[i]]++;
}
for(int i=9;i>=0;i--){
cout<<sum[i]<<endl;
}
return 0;
}
嘻嘻(#^.^#)~