| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1652 人关注过本帖
标题:c语言的一个简单程序不知道哪里错了
只看楼主 加入收藏
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
结帖率:57.14%
收藏
 问题点数:0 回复次数:10 
c语言的一个简单程序不知道哪里错了
#include"stdio.h"
struct Student
{
    long num;
    char name[20];
    char sex;
    int score;
};
void main()
{
    struct Student student={54,"da",'d',513};
    printf("输入学生的信息(学号,姓名,性别,分数):");
    scanf("%ld%s%c%d",&student.num,student.name,&student.sex,&student.score);
    printf("%ld\t%s\t%c\t%d\t",student.num,student.name,student.sex,student.score);
}

搜索更多相关主题的帖子: include c语言 信息 姓名 
2015-04-16 20:01
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
收藏
得分:0 
前两个数据没有问题,但是后面好像是乱码
2015-04-16 20:02
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:0 
第13行   scanf("%ld%s%c%d",………………)加个空格就可以:scanf("%ld%s %c%d",………………)
或者索性所有都加空格:scanf("%ld %s %c %d",………………)。
    原因可能是输入名字字符串后,要输入空格,编译器把空格符传给student.sex,把要输入的性别(char类型)传给score,输入提前结束。
   
    刚学没多久,请自行斟酌~
2015-04-16 21:04
米线儿
Rank: 2
等 级:论坛游民
威 望:1
帖 子:35
专家分:54
注 册:2015-3-28
收藏
得分:0 
把sex那个也设置成数组然后就可以显示了,原因我不知道为什么,但是我这么改了以后就可以了···
#include <stdio.h>
#include <stdlib.h>

struct Student
{
    long num;
    char name[20];
    char sex[10];
    int score;
};
void main()
{
    struct Student student={54,"da",'d',513};
    printf("输入学生的信息(学号,姓名,性别,分数):");
    scanf("%ld%s%s%d",&student.num,student.name,&student.sex,&student.score);
    printf("%ld\t%s\t%s\t%d\t",student.num,student.name,student.sex,student.score);
}
2015-04-17 01:37
渣渣渣
Rank: 2
等 级:论坛游民
帖 子:26
专家分:17
注 册:2015-3-23
收藏
得分:0 
应该是输入是的问题,
2015-04-17 07:49
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
收藏
得分:0 
回复 3楼 我爱吃青菜
编译系统不是把空格当做空字符了吗,作为字符串结束的标志。那么空格应该属于字符串的一部分啊
2015-04-17 09:17
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
收藏
得分:0 
回复 4楼 米线儿
你输入的时候好像有问题,字符串数组名不需要取地址符吧
2015-04-17 09:19
邓娟
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-17
收藏
得分:0 
我也是新手,同教
2015-04-17 10:44
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:0 
按照你的代码编译,如果用回车分隔各元素,输出的结果是不是有换行符;如果用空格分隔各元素,sex的元素好像不见了,其实应该就是输出空格符。
所以我从这猜测空格符、换行符被读入了

具体原因还是等大神解释吧
2015-04-17 13:05
米线儿
Rank: 2
等 级:论坛游民
威 望:1
帖 子:35
专家分:54
注 册:2015-3-28
收藏
得分:0 
回复 7楼 鱼游海底
对的,是我没注意。不过我改了以后试了下还是可以的。
2015-04-17 16:33
快速回复:c语言的一个简单程序不知道哪里错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015118 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved