标题:为什么在第一个for循环中循环一次后就无法继续循环了呢?
只看楼主
回忆、想忘
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2010-12-24
结帖率:100%
已结贴  问题点数:20 回复次数:13 
为什么在第一个for循环中循环一次后就无法继续循环了呢?
程序代码:
#include<stdio.h>
#include<malloc.h>
struct Student
{
    char name[100];
    int age;
    float score;
};
int main(void)
{
    int len;
    int i;
    struct Student *p;
    p=(struct Student *)malloc(len*sizeof(struct Student));
    printf("请输入一共有几位学生:");
    scanf("%d",&len);
    for(i=0;i<len;++i)
    {
        printf("请输入第%d位同学的信息:\n",i+1);
        printf("name:");
        scanf("%s",p[i].name);

        printf("age:");
        scanf("%f",&p[i].age);

        printf("score:");
        scanf("%g",&p[i].score);
       
    }
        for(i=0;i<len;++i)
    {
        printf("请输出第%d位同学的信息:\n",i+1);
        printf("name:\n",p[i].name);

        printf("age:\n",&p[i].age);

        printf("score:\n",&p[i].score);
       
       
    }
        return 0;


}
搜索更多相关主题的帖子: age 
2011-10-07 19:28
naruto01
Rank: 4
等 级:业余侠客
帖 子:103
专家分:280
注 册:2011-5-23
得分:0 
    p=(struct Student *)malloc(len*sizeof(struct Student));
你能确认这时候len的值吗?
2011-10-07 19:34
回忆、想忘
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2010-12-24
得分:0 
写到这里是想试试看能不能输入,谁知道不能 后面还想再弄个冒泡排序什么的来排成绩
2011-10-07 19:35
回忆、想忘
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2010-12-24
得分:0 
回复 2楼 naruto01
放在scanf("%d",&len);后面也不行啊
2011-10-07 19:37
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
得分:15 
同上
2011-10-07 19:38
回忆、想忘
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2010-12-24
得分:0 
回复 5楼 ileelsai
放在scanf("%d",&len);后面也不行啊
2011-10-07 19:41
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
得分:0 
你后两个print的&是for what?
2011-10-07 19:43
回忆、想忘
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2010-12-24
得分:0 
回复 7楼 ileelsai
哦 应该去掉 可是前面的输入都不行 为什么啊
2011-10-07 19:46
ileelsai
Rank: 5Rank: 5
等 级:职业侠客
帖 子:87
专家分:303
注 册:2011-9-25
得分:0 
scanf("%s",&(p+i)->name);
对指向一定空间的指针引用我习惯这样写,还有scanf中的数组类型可以不用&,但我习惯上加上,没必要剩一个&容易出错
指针的数据项最好用->
你按照这改改
2011-10-07 19:53
naruto01
Rank: 4
等 级:业余侠客
帖 子:103
专家分:280
注 册:2011-5-23
得分:5 
scanf("%f",&p[i].age);
以及
程序代码:
        printf("name:\n",p[i].name);

        printf("age:\n",&p[i].age);

        printf("score:\n",&p[i].score);
2011-10-07 19:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-351755-1-1.html




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

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