No.1
陶陶摘苹果(这是一道众人所知的水题)
#include<stdio.h>
#include<stdlib.h>
int a[11];
int ans;
int main(){
int i,j,k,n,m;
m=10;
for(i=1;i<=m;i++)scanf("%d",&a[i]);
scanf("%d",&n);
k=30;
for(i=1;i<=m;i++)
if(n+30>=a[i])ans++;
printf("%d\n",ans);
return 0;
}
No.2
校门外的树(这道题目有点尴尬)
#include<stdio.h>
#include<stdlib.h>
int b[10010];
int main(){
int i,j,k,n,m;
scanf("%d%d",&m,&n);
for(i=1;i<=n;i++){
int x,y;
scanf("%d%d",&x,&y);
for(j=x;j<=y;j++)b[j]=1;
}
int ans=0;
for(i=0;i<=m;i++)//一定要从0开始啊!
if(!b[i])ans++;
printf("%d\n",ans);
return 0;
}
No.3
谁拿了最多的奖学金?(这道题目结构体排序,要多用一个number存他第几个出现)
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node{
int ans;
char s[21];
int qm,bj;
char xb,gb;
int lw;
int number;
}a[100001];
int cmp(const node a,const node b){
return a.ans>b.ans || a.ans==b.ans && a.number<b.number;
//这个或者不能少
}
int main(){
int i,j,k,n,m;
scanf("%d",&n);
int ans=0;
for(i=1;i<=n;i++){
scanf("%s %d %d %c %c %d",&a[i].s,&a[i].qm,&a[i].bj,&a[i].gb,&a[i].xb,&a[i].lw);
a[i].number=i;
if(a[i].qm>80 && a[i].lw>=1)a[i].ans+=8000;
if(a[i].qm>85 && a[i].bj>80)a[i].ans+=4000;
if(a[i].qm>90)a[i].ans+=2000;
if(a[i].qm>85 && a[i].xb=='Y')a[i].ans+=1000;
if(a[i].bj>80 && a[i].gb=='Y')a[i].ans+=850;
ans+=a[i].ans;
}
sort(a+1,a+n+1,cmp);
printf("%s\n%d\n%d\n",a[1].s,a[1].ans,ans);
return 0;
}
好了,今天就做了这三道题,日后再发高(低)难(水)题