| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 596 人关注过本帖
标题:为什么输入数据的时候程序自动显示出来完了呢?
只看楼主 加入收藏
greatorange
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-8-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
为什么输入数据的时候程序自动显示出来完了呢?
程序代码:
# include<stdio.h>
# include<windows.h>
# include<malloc.h>


struct stu
{
    char name;
    char sex;
    int age;
    int score;
};

void input(struct stu * p, int len)
{
    for (int i = 0; i < len; ++i)
    {
        printf("输入%d组数据:", i + 1);

        printf("\n输入姓名:");
        printf("\n输入性别:");
        printf("\n输入年龄:");
        printf("\n输入分数:\n");
        
        scanf("%c %c %d %d", &p[i].name, &p[i].sex, &p[i].age, &p[i].score);

    };
};

void output(struct stu * q, char * r)
{
    printf("  姓名:%c\n", q[*r].name);
    printf("  性别:%c\n", q[*r].sex);
    printf("  年龄:%d\n", q[*r].age);
    printf("  分数:%d\n", q[*r].score);

}

int main(void)
{
    int len;    /*此为数据个数*/
    printf("\n输入即将录入的数据个数:");
    scanf("%d", &len);
    
    struct stu * student = (struct stu *)malloc(sizeof(struct stu) * len);    /*定义x为动态数组*/
    
    input(student, len);    /*此为输入通道*/
    
    printf("\n输入你想要的第几组数据:");
    char y;    /*此为输出通道*/
    scanf("%c", &y);
    output(student, &y);
    
    
    system("pause");
    return 0;
}


第一次输入的时候程序还停了一下,第二次输入的时候程序就把下面的文字全都输出了,没法输入数据啊。大神来救。
2014-08-27 15:52
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:5 
你确定一个name  用char就可以????

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-08-27 16:41
greatorange
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-8-15
收藏
得分:0 
回复 2 楼 so_love
不会是用数组吧?
2014-08-27 16:43
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
如果你只用一个char类型  是肯定不行。存不下一个名字。那你就用一个数组试试呗

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-08-27 16:55
greatorange
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-8-15
收藏
得分:0 
回复 4 楼 so_love
OK,数组测试无误。但是为什么呢,字符串要存储到数组里面?
2014-08-27 19:08
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
以下是引用greatorange在2014-8-27 19:08:30的发言:

OK,数组测试无误。但是为什么呢,字符串要存储到数组里面?
char name;

这样的话 name只能存一个字符

char name[10]; 这样的话 不算结尾的0最多能存9个字符

所以 C语言用数组来存字符串 虽然这样有缺点
2014-08-27 21:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
以下是引用greatorange在2014-8-27 19:08:30的发言:

OK,数组测试无误。但是为什么呢,字符串要存储到数组里面?


C语言的字符串就是字符数组,你们上课和教材没讲清楚、讲明白这个最基本的知识点的么?

授人以渔,不授人以鱼。
2014-08-27 22:14
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:5 
都开始用结构鸟

梦想拥有一台龙芯3A-4000
2014-08-27 22:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用ditg在2014-8-27 22:47:03的发言:

都开始用结构鸟


这就是不学基本功,死模仿套路。

授人以渔,不授人以鱼。
2014-08-27 22:59
greatorange
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-8-15
收藏
得分:0 
回复 6 楼 zklhp
多谢指教,受益了。
2014-08-28 23:54
快速回复:为什么输入数据的时候程序自动显示出来完了呢?
数据加载中...
 
   



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

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