鱼C论坛

 找回密码
 立即注册
查看: 2684|回复: 9

求解答可以这样scanf给赋值吗?if下面的判断行不通

[复制链接]
发表于 2014-9-8 12:05:41 | 显示全部楼层 |阅读模式
2鱼币
求解答可以这样scanf给赋值吗?if下面的判断行不通 怎样输入都是 两个数相等
怎样解决下面判断大小,哪里错了
# include <stdio.h>
struct student
{
int num;
char name[20];
float score;
}student1,student2;
int main(void)
{
struct student1;
struct student2;
scanf("%d,%s,%f",&student1.num, &student1.name, &student1.score);
scanf("%d,%s,%f",&student2.num, &student2.name, &student2.score);

if(student1.score > student2.score)
{
  printf("%s  %f\n",student1.name, student1.score);
}
    else if(student1.score < student2.score)
{
  printf("%s  %f\n",student2.name, student2.score);
}
else if(student1.score == student2.score)
{
  printf("他们两个人的成绩相等");
}

}


我运行的结果 怎样输入都是他们两人成绩相等

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-8 12:26:36 | 显示全部楼层
struct student1;
struct student2;
这两句 你是要闹哪样??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-8 14:55:02 | 显示全部楼层
我也是初学者,目测输入他们的分数printf("")放在scanf(""),前面试试,要先输入分数才能获取。不知道对不对:big
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-9-8 22:42:31 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-9-8 12:26
这两句 你是要闹哪样??

是不是 应该struct student  st变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-9 01:02:55 | 显示全部楼层
怎么搞得,struct student这个是你定义的结构体类型的类型名,不是变量名,要用你定义的结构体类型来定义一个变量应该是   struct student 变量名={。。。。。。。};
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-9 09:22:05 | 显示全部楼层
不会啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-10 19:06:42 | 显示全部楼层
牡丹花下死做鬼 发表于 2014-9-8 12:26
这两句 你是要闹哪样??

哟哟 切克闹 牡丹又来论坛大显神威了,。。。,,。,。,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-11 11:40:07 | 显示全部楼层
# include <stdio.h>
struct student
{
int num;
char name[20];
float score;
};
void main()
{
        struct student student1;
        struct student student2;
        scanf("%d %s %f",&student1.num,&student1.name,&student1.score);
        scanf("%d %s %f",&student2.num,&student2.name,&student2.score);

        if(student1.score > student2.score)
        {
          printf("%s  %f\n",student1.name, student1.score);
        }
        else if(student1.score < student2.score)
        {
          printf("%s  %f\n",student2.name, student2.score);
        }
        else if(student1.score == student2.score)
        {
          printf("他们两个人的成绩相等");
        }

}


注意scanf赋值处
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-11 22:28:30 | 显示全部楼层
bobo_dreamer 发表于 2014-9-11 11:40
# include
struct student
{

那若我想用逗号作为分隔符,怎么处理,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-12 09:00:37 | 显示全部楼层
你可以将student.score与student.name输入顺序替换。
       scanf("%d, %f,%s",&student1.num,&student1.score,&student1.name);
        scanf("%d,%f,%s",&student2.num,&student2.score,&student2.name);
出现你那种情况是因为计算机无法识别你输入的name和score之间的逗号是分隔符还是字符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 00:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表