| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 428 人关注过本帖
标题:编译,链接没问题,程序运行中出错,哪位大哥看看问题在哪?
取消只看楼主 加入收藏
hyddpjh
Rank: 2
等 级:论坛游民
帖 子:9
专家分:14
注 册:2014-2-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
编译,链接没问题,程序运行中出错,哪位大哥看看问题在哪?
// 调用函数这个写法,在输入第二个数据的时候,程序运行错了。在main中操作的写法是可以。
# include <stdio.h>
# include <malloc.h>

struct Student
{
    int age;
    float score;
    char name[10];
};

void InputStudent(struct Student ** st, int len)
{
    int i;
    *st = (struct Student *)malloc( len * sizeof(struct Student ) );

    for (i=0; i<len; ++i)
    {
        printf("请输入第%d个学生的信息\n", i+1);
        printf("age = ");
        scanf("%d", &((*st[i]).age));
        printf("score = ");
        scanf(" %f", &((*st[i]).score));
        printf("name = ");
        scanf("%s", &((*st[i]).name));

        getchar();
    }
}

int main(void)
{
    int len;
    int i;
    struct Student * pArr;

    printf("请输入要输入学生信息的个数:\n");
    scanf("%d", &len);
//    pArr = (struct Student *)malloc( len * sizeof(struct Student) );

    //输入学生信息
    InputStudent(&pArr, len);

/*    for (i=0; i<len; i++)
    {
        printf("请输入第%d个学生的信息\n", i+1);
        printf("age =");
        scanf("%d", &pArr[i].age);
        printf("score = ");
        scanf("%f", &pArr[i].score);
        printf("name = ");
        scanf("%s", &pArr[i].name);
    }
*/
    //输出学生信息

    for (i=0; i<len; i++)
    {
        printf("第%d个学生的信息是:\n", i+1);
        printf("age =%d\n",pArr[i].age);        
        printf("score = %f\n",pArr[i].score);        
        printf("name = %s\n", pArr[i].name);
    }

    return 0;
}

[ 本帖最后由 hyddpjh 于 2014-2-27 11:16 编辑 ]
搜索更多相关主题的帖子: include 大哥 信息 
2014-02-27 10:54
hyddpjh
Rank: 2
等 级:论坛游民
帖 子:9
专家分:14
注 册:2014-2-27
收藏
得分:0 
用指针使结构体在函数中传递要怎么弄呢?我这种写法错在哪了,哪位大哥给我指点下?
2014-02-27 21:08
hyddpjh
Rank: 2
等 级:论坛游民
帖 子:9
专家分:14
注 册:2014-2-27
收藏
得分:0 
//一直很苦恼,搞不定,就继续往下学了,学了链表以后,忽然开朗,修改了程序,终于搞明白了,运行正常。想明白了又感觉挺简单,呵呵。谢谢各位的解答提醒,谢谢了。
//修改程序如下:
# include <stdio.h>
# include <malloc.h>

struct Student
{
    int age;
    float score;
    char name[10];
};

struct Student *  InputStudent(void)
{
    int i, len;
    struct Student * pArr;
   
    printf("请输入要输入学生信息的个数:\n");
    scanf("%d", &len);
    pArr = (struct Student *)malloc( len * sizeof(struct Student ) );
   
    for (i=0; i<len; ++i)
    {
        printf("请输入第%d个学生的信息\n", i+1);
        printf("age = ");
        scanf("%d", &pArr[i].age);
        printf("score = ");
        scanf(" %f", &pArr[i].score);
        printf("name = ");
        scanf("%s", &pArr[i].name);
        
        //    pArr ++;
        //    getchar();
    }
   
    return (pArr);
}

int OutputStudent(struct Student * pArr )
{
    int len, i;
    struct Student * p;
   
    p = pArr;
   
    printf("请输入要输出学生信息的个数\n");
    scanf ("%d", &len);
   
    for(i=0; i<len; i++)
    {
        printf("第%d个学生信息为:\n", i+1);
        printf("age =%d\n", p[i].age);
        
        printf("score =%f\n", p[i].score);
        
        printf("name = %s\n", p[i].name);
        
    }
   
    return 0;
}

int main(void)
{
    struct Student * pArr;
   
    pArr = InputStudent( );
    OutputStudent(pArr );
   
    return 0;
}
2014-03-03 11:01
快速回复:编译,链接没问题,程序运行中出错,哪位大哥看看问题在哪?
数据加载中...
 
   



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

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