#include "stdio.h"#include "string.h"#define N 10struct T{\x05char s[5];\x05int score;};void main(){\x05int max=0;\x05struct T t[N],*p;\x05for(p=t;ps);\x05 printf("Please input score:\n");\x05 scanf("%d",&p->score);\x05}\x05for(p=t;p*(p+1).score)\x05
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 01:32:32
#include "stdio.h"#include "string.h"#define N 10struct T{\x05char s[5];\x05int score;};void main(){\x05int max=0;\x05struct T t[N],*p;\x05for(p=t;ps);\x05 printf("Please input score:\n");\x05 scanf("%d",&p->score);\x05}\x05for(p=t;p*(p+1).score)\x05
#include "stdio.h"
#include "string.h"
#define N 10
struct T
{
\x05char s[5];
\x05int score;
};
void main()
{
\x05int max=0;
\x05struct T t[N],*p;
\x05for(p=t;ps);
\x05 printf("Please input score:\n");
\x05 scanf("%d",&p->score);
\x05}
\x05for(p=t;p*(p+1).score)
\x05\x05{
max=*p.score;
\x05\x05}
\x05\x05else
\x05\x05{
max=*(p+1).score;
\x05\x05}
\x05}
\x05for(p=t;ps,p->score);
\x05\x05\x05break;
\x05\x05}
\x05}
}
#include "stdio.h"#include "string.h"#define N 10struct T{\x05char s[5];\x05int score;};void main(){\x05int max=0;\x05struct T t[N],*p;\x05for(p=t;ps);\x05 printf("Please input score:\n");\x05 scanf("%d",&p->score);\x05}\x05for(p=t;p*(p+1).score)\x05
按你的意思,是这样:
#include "stdio.h"
#include "string.h"
#include<stdlib.h>
#define N 10
struct T
{
\x05char s[5];
\x05int score;
};
void main()
{
\x05int max=0;
\x05struct T t[N],*p;
\x05for(p=t;p<t+N;p++)
\x05{
\x05\x05fflush(stdin);
\x05 printf("Please input num:\n");
\x05 gets(p->s);
\x05 printf("Please input score:\n");
\x05 scanf("%d",&p->score);
\x05}
\x05for(p=t;p<t+N-1;p++)
\x05{
\x05\x05if((*p).score > (*(p+1)).score)
\x05\x05{
max=(*p).score;
\x05\x05}
\x05\x05else
\x05\x05{
max=(*(p+1)).score;
\x05\x05}
\x05}
\x05for(p=t;p<t+N;p++)
\x05{
\x05\x05if(((*p).score)==max)
\x05\x05{
\x05\x05\x05printf("%s %d",p->s,p->score);
\x05\x05\x05break;
\x05\x05}
\x05}
}
成员运算符'.'的优先级比指针运算符'*'高,所以 *p.score会被理解为*(p.score),当然报错了……
所以要(*p).score
其实一般不这样写……一般在
struct T
{
\x05char s[5];
\x05int score;
}*A;
这样用A可以直接定义T*了,可以A p了