C语言 题目

#include "string.h"
typedef struct student{
char name[10];long sno;float score;
}STU;
main()
{
STU
a={"zhangsan",2001,95},b={"shangxian",2002,90},c={"anhua",2003,95},d,
以下 解释一下
*p=&d;
d=a;
if (strcmp(a.name,b.name)>0)d=b;
if (strcmp(c.name,d.name)>0)d=c;
printf("%1d%s\n",d.sno,p->name);
}
输出结果是什么 怎么做
strcmp 举个例子吧 如果说不清楚

#include "string.h"
#include <stdio.h>
typedef struct student{
char name[10];long sno;float score;
}STU;
int main()
{
STU
a={"zhangsan",2001,95},b={"shangxian",2002,90},c={"anhua",2003,95},d,
//以下 解释一下
*p=&d;
d=a;
if (strcmp(a.name,b.name)>0)d=b;
if (strcmp(c.name,d.name)>0)d=c;
printf("%1d%s\n",d.sno,p->name);
这个是编译没有错误的代码

strcmp() 是两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。

所以,最后结果为:2002shangxian

strcmp(abc,ABC) 先从第一个字母比较,因为a的ASCII码比A的大,所以strcmp(abc,ABC)>0
strcmp(abc,aBC) 第一个a相同,故比较第二个b和B,同理,可知strcmp(abc,aBC)〉0 所以 主要是比较字母的ASCII码大小
温馨提示:答案为网友推荐,仅供参考
相似回答