C结构体章学习--比大小出现的错误自查

文章展示了C语言中一个错误的if判断语句,其中缺少了分号。然后给出了修正后的正确写法,强调了每个语句结束需要分号,并用if语句比较了两个结构体变量的成绩。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误的if判断写法

#include <stdio.h>
#include <string.h>

struct Student
{
    int num;
    char name[32];
    char sex;
    int age;
    double score;
    char addr[32];
};

int main()
{
    int a;
    
    struct Student stu1;
    struct Student stu2 = {5,"张三",'m', 18, 100.0, "hangzhou"};//方法2
    struct Student max;
    
    a = 10;
    stu1.num = 1;//点运算符来访问结构体中的成员变量(域)//方法1
    stu1.score = 99.2;
    strcpy(stu1.name, "张飞");
    strcpy(stu1.addr, "hangzhou");
    stu1.sex = 'f';
    stu1.age = 20;
    
    
    //printf("年龄:%d,分数:%f,名字:%f,地址: %s\n",stu1.num,stu1.age,stu1.score,stu1.name,stu1.addr);
    
    printf("年龄:%d,分数:%f,名字:%f,地址: %s\n",stu2.num,stu2.age,stu2.score,stu2.name,stu2.addr);
    
    max = stu1;
    
    if(stu1.score < stu2.score){
        max = stu2;
  
    printf("成绩比较好的是:\n");
    printf("年龄:%d,分数:%f,名字:%f,地址: %s\n",max.num,max.age,max.score,max.name,max.addr);
    return 0;
     }//if断在这里-错误!
}

在 if 语句的结束花括号后面缺少一个分号。在 C 语言中,每个语句的结束都需要分号

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

正确的if判断写法:

#include <stdio.h>
#include <string.h>

struct Student
{
    int num;
    char name[32];
    char sex;
    int age;
    double score;
    char addr[32];
};

int main()
{
    int a;
    
    struct Student stu1;
    struct Student stu2 = {5,"张三",'m', 18, 100.0, "hangzhou"};//方法2
    struct Student max;
    
    a = 10;
    stu1.num = 1;//点运算符来访问结构体中的成员变量(域)//方法1
    stu1.score = 99.2;
    strcpy(stu1.name, "张飞");
    strcpy(stu1.addr, "hangzhou");
    stu1.sex = 'f';
    stu1.age = 20;
    
    
    //printf("年龄:%d,分数:%f,名字:%f,地址: %s\n",stu1.num,stu1.age,stu1.score,stu1.name,stu1.addr);
    
    printf("年龄:%d,分数:%f,名字:%f,地址: %s\n",stu2.num,stu2.age,stu2.score,stu2.name,stu2.addr);
    
    max = stu1;
    
    if(stu1.score < stu2.score){
        max = stu2;
    }//if断在这里正确。
    printf("成绩比较好的是:\n");
    printf("年龄:%d,分数:%f,名字:%f,地址: %s\n",max.num,max.age,max.score,max.name,max.addr);
    return 0;
    
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值