做了几个题:
小兔子的果园:
之前一直写这个题过不了,嗯,主要是没办法把各种水果的关系连起来,学了结构体就好说了,一下就过了,看代码:
#include<stdio.h>
struct queue
{
int p;
int m;
int x;
int l;
int w;
}q[10];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d %d %d %d %d",&q[i].p,&q[i].m,&q[i].x,&q[i].l,&q[i].w);
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
if(q[i].m<q[j].m)
{
struct queue t;
t=q[i];
q[i]=q[j];
q[j]=t;
}
if(q[i].m==q[j].m&&(q[i].p+q[i].x+q[i].l+q[i].w)>(q[j].p+q[j].x+q[j].l+q[j].w))
{
struct queue t;
t=q[i];
q[i]=q[j];
q[j]=t;
}
}
for(int i=0;i<n;i++)
{
printf("%d %d %d %d %d\n",q[i].p,q[i].m,q[i].x,q[i].l,q[i].w);
}
return 0;
}
竞选主席
这题注意票数最多会有一百位数字,连最多的unsigned long long都不会有这么多,所以我们要把它看成是字符一个个计算,我是这么想的,先比较输入的数字字符的长度,长的肯定就大,如果一样长的话就让它们比大小,这里可以用函数strcmp来比较,还有一点就是字符串的交换问题,要借用函数strcpy,我事先打算把所有字符按从大到小排序后输出第一个,但是这时候又会有一个问题,这时候他们原本的序号就被打乱了,所以还是可以用结构体,让结构体数组的序号来计排好的序列的序号,而里面专门用一个变量来即原本的序号。具体看代码:
#include<stdio.h>
#include<string.h>
struct note
{
int l;
int m;
int a[100];
} q[20];
int main()
{
int n;
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
q[i].m=i;
scanf("%s",q[i].a);
q[i].l=strlen(q[i].a);
}
for(int i=1; i<=n-1; i++)
for(int j=i+1; j<=n; j++)
{
if(q[i].l<q[j].l)
{
struct note t;
t=q[i];
q[i]=q[j];
q[j]=t;
}
if(q[i].l==q[j].l)
{
if(strcmp(q[i].a,q[j].a)<0)
{
struct note t;
t=q[i];
q[i]=q[j];
q[j]=t;
}
}
}
printf("%d\n",q[1].m);
printf("%s",q[1].a);
return 0;
}
最近有点松懈了:连总结都敷衍不少,还有就是被题目打击到了自信吧,从明天开始,好好学习!
密码发生器
这个题目我主要是在纠结要怎么吧求和后的六个数字不断拆分并求和最后到一位数,刚开始我还开了好多数组,然后把自己开郁闷了,