这个学期开始就会难一点,前面基础不好的同学一定要好好复(yv)习一下上学期学习的基础知识。
有能力的同学可以开始学习c++了,c++跟c差不多主要需要学习的是函数的使用。
这部分的排序我还用的两个for,有余力的同学可以学习使用qsort。
A - 检查宿舍卫生
#include<stdio.h>
struct dormitory_scores
{
int a,b,c,d,e,sum;
}ds;
int main()
{
int n,max=-1,k=0;
scanf("%d",&n);
while(n--)
{
scanf("%d %d %d %d %d",&ds.a,&ds.b,&ds.c,&ds.d,&ds.e);
ds.sum=ds.a+ds.b+ds.c+ds.d+ds.e;
if(ds.sum>max) max=ds.sum;//记录最高分
if(ds.sum<85) k++;//k用来记录不合格宿舍数量
}
//如果最高分都低于85就没有合格的宿舍,直接输出no
if(max<85) printf("%d No",k);
else printf("%d %d",k,max);
}
B - 小 I 的小姐姐
#include<stdio.h>
struct little_sister
{
int p1,p2,p3;
double sum;
}ls;
int main()
{
int n,max=-1,k=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %d %d",&ls.p1,&ls.p2,&ls.p3);
ls.sum=ls.p1*0.7+ls.p2*0.2+ls.p3*0.1;
if(ls.sum>max)
{
max=ls.sum;
k=i;//k用来记录最多
}
}
printf("%d",k);
}
C - 选票统计
#include<stdio.h>
int main()
{
int n,m,max=-1,k=0;
scanf("%d %d",&m,&n);
int a[1005]={0};
for(int i=1;i<=n;i++)
{
int x;
scanf("%d",&x);
a[x]++;
if(a[x]>max)
{
max=a[x];
k=x;//k用来记录最多
}
}
printf("%d\n%d",k,a[k]);
}
D - 小 I 选宾馆
#include<stdio.h>
struct room_choose
{
int price,comfort;
}rc;
int main()
{
int n,k=0,ma1=-1,ma2=-1;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d %d",&rc.price,&rc.comfort);
if(rc.price>ma1)
{
k=i;
ma1=rc.price;
ma2=rc.comfort;
}
else if(rc.price==ma1)
{
if(rc.comfort>ma2)
{
k=i;
ma2=rc.comfort;
}
}
}
printf("%d",k);
}
E - 小鑫の日常系列故事(十)——排名次
//这道题目的排序部分可以使用qsort,感兴趣的童鞋可以学一学
#include<stdio.h>
#include<algorithm>
struct arrange_position
{
char name[15];
int score;
}ap[55],a;
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%s %d",&ap[i].name,&ap[i].score);
for(int i=n-1;i>0;i--)
{
for(int j=0;j<i;j++)
{
if(ap[j].score<ap[j+1].score)
{
a=ap[j];
ap[j]=ap[j+1];
ap[j+1]=a;
}
}
}
for(int i=0;i<n;i++) printf("%s %d\n",ap[i].name,ap[i].score);
}
F - 最终排名
#include<stdio.h>
struct finally_position
{
int id,number;
}fp[10005],a;
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d %d",&fp[i].id,&fp[i].number);
for(int i=n-1;i>0;i--)
{
for(int j=0;j<i;j++)
{
if(fp[j].number<fp[j+1].number)
{
a=fp[j];
fp[j]=fp[j+1];
fp[j+1]=a;
}
}
}
for(int i=0;i<n;i++) printf("%d %d\n",fp[i].id,fp[i].number);
}
G - 选夫婿1
#include<stdio.h>
struct choose_husband
{
char name[15];
int hight,weight;
}ch[10005],t;
int main()
{
int i,j,n,a,b,c,d,k=1;
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%s %d %d",&ch[i].name,&ch[i].hight,&ch[i].weight);
for(i=n-1;i>0;i--)
{
for(j=0;j<i;j++)
{
if(ch[j].hight>ch[j+1].hight) //先按身高排序
{
t=ch[j];
ch[j]=ch[j+1];
ch[j+1]=t;
}
else if(ch[j].hight==ch[j+1].hight) //按体重排序
{
if(ch[j].weight>ch[j+1].weight)
{
t=ch[j];
ch[j]=ch[j+1];
ch[j+1]=t;
}
}
}
}
scanf("%d %d %d %d",&a,&b,&c,&d);
for(i=0;i<n;i++)
{
//对排序完成的进行筛选
if((ch[i].hight>=a&&ch[i].hight<=b)&&(ch[i].weight>=c&&ch[i].weight<=d))
{
printf("%s %d %d\n",ch[i].name,ch[i].hight,ch[i].weight);
k=0;//标记有没有合格的人
}
}
if(k==1)
{
printf("No\n");
return 0;
}
}
H - 老–质价比
#include<stdio.h>
struct zjb
{
int zl;
int jg;
}s[105],t;
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&s[i].zl);
for(i=0;i<n;i++) scanf("%d",&s[i].jg);
for(i=n-1;i>0;i--)
{
for(j=0;j<i;j++)
{
if(s[j].zl>s[j+1].zl)//先对质量排序
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
else if(s[j].zl==s[j+1].zl)//再对价格排序
{
if(s[j].jg<s[j+1].jg)
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
}
}
for(i=0;i<n;i++)
{
printf("%d %d\n",s[i].zl,s[i].jg);
}
}
I - 共用体练习
#include<stdio.h>
#include<string.h>
union undata
{
int a;
double b;
char c[25];
}u[100005];
char s[100005][25];
int main()
{
int n,m,i,x;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
{
scanf("%s",s[i]);
if(strcmp("INT",s[i])==0) scanf("%d",&u[i].a);
else if(strcmp("DOUBLE",s[i])==0) scanf("%lf",&u[i].b);
else if(strcmp("STRING",s[i])==0) scanf("%s",&u[i].c);
}
for(i=0;i<m;i++)
{
scanf("%d",&x);
if(strcmp("INT",s[x])==0) printf("%d\n",u[x].a);
else if(strcmp("DOUBLE",s[x])==0) printf("%.2lf\n",u[x].b);
else if(strcmp("STRING",s[x])==0) printf("%s\n",u[x].c);
}
}
J - 简单枚举类型——植物与颜色
#include<string.h>
#include<stdio.h>
int main()
{
int n,i;
char s[50];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",s);
if( strcmp(s,"red") == 0 )
printf("Rose are red.\n");
else if( strcmp(s,"orange") == 0 )
printf("Poppies are orange.\n");
else if( strcmp(s,"yellow") == 0)
printf("Sunflower are yellow.\n");
else if( strcmp(s,"green") == 0 )
printf("Grass are green.\n");
else if( strcmp(s,"blue") == 0 )
printf("Bluebells are blue.\n");
else if( strcmp(s,"violet") == 0 )
printf("Violets are violet.\n");
else
printf("I don't know about the color %s.\n",s);
}
return 0;
}
不懂得可以私信我,随时解答。
程序有错误请私信我,以及时改正。感谢!