| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1171 人关注过本帖
标题:scanf错误,&非法???
取消只看楼主 加入收藏
C初见
Rank: 2
来 自:四川
等 级:论坛游民
帖 子:61
专家分:52
注 册:2017-1-7
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:2 
scanf错误,&非法???
程序代码:
/*
    2017年3月19日 18:03:28
    建立一个动态链表,
    各个结点由用户输入
    学号为0表示输入结束
*/

# include<stdio.h>
# include<stdlib.h>

# define LEN sizeof(struct Student)    
//sizeof函数是取得括号内数据类型的长度,比如vc中int类型为4;
//这里是定义一个常量LEN,他的值是sizeof的函数返回值;

struct Student        //定义一个数据类型
{
    int num;
    float score;
    struct Student * next;
};

int n;            //定义一个全局变量n
struct Student * creat(void)    
//定义一个指针函数,返回一个函数值为struct Student类型的地址,不接收参数
{
    struct Student * head;
    struct Student * p1, *p2;
    n = 0;                        //前面已经定义了一个n,所以直接赋值
    p1 = p2 = (struct Student *)malloc(LEN);        //为struct Student类型分配一个存储单元
    scanf("%d,%f," &p1->num, &p1->score);            //输入一个学生的学号和成绩
    head = NULL;            //头指针为零
    while(p1->num != 0)        //如果输入学号为0,则指针指向NULL
    {
        n = n+1;    
        if(n == 1)
            head = p1;    //head是头指针
        else 
            p2->next = p1;    //p2->next指向了p1
        p2 = p1;            //
        p1 = (struct Student *)malloc(LEN);
        scanf("%d,%f", &p1->num, &p1->score);
    }
    p2->next = NULL;
    return (head);
}

int main(void)
{
    struct Student * pt;
    pt = creat();
    printf("\nnum:%d\nscore:%5.1f\n", pt->num, pt->score);

    return 0;
}
搜索更多相关主题的帖子: 动态 用户 
2017-03-19 19:52
C初见
Rank: 2
来 自:四川
等 级:论坛游民
帖 子:61
专家分:52
注 册:2017-1-7
收藏
得分:0 
错误信息:'&' : illegal, left operand has type 'char [7]'
2017-03-19 19:53
C初见
Rank: 2
来 自:四川
等 级:论坛游民
帖 子:61
专家分:52
注 册:2017-1-7
收藏
得分:0 
回复 3楼 ehszt
2017-03-19 20:05
快速回复:scanf错误,&非法???
数据加载中...
 
   



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

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