标题:看看这个SCANF输入的东西为什么输出错误
只看楼主
tcxiang
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-10-14
 问题点数:0 回复次数:5 
看看这个SCANF输入的东西为什么输出错误

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

typedef struct {
char data;
int num;}elemtype;

typedef struct {
elemtype *top,*base;
}sqstack;

sqstack s;

void init()
{
s.top =( elemtype*) malloc ( 10*sizeof(elemtype));
s.base = s.top;
}

void main()
{
elemtype e;int i;
init();
for(i=0;i<2;i++)
{scanf("%c,%d",&(s.top->data),&(s.top->num));s.top++;}
printf(" %c-->%d",s.top->data ,s.top->num);
}

搜索更多相关主题的帖子: SCANF 输出 输入 
2007-10-22 17:17
风的声音
Rank: 1
等 级:新手上路
帖 子:128
专家分:0
注 册:2007-3-27
得分:0 
怎么会没有错??你的s变量是什么类型??没有定义。
还有,你的init()明明是初始化一个栈,可是函数执行完之后什么都没有留下;你至少应该用一个引用把你初始的栈返回吧??问题太多,再仔细看看

一念心清净,莲花处处开。 一花一净土,一土一如来。
2007-10-22 21:36
tcxiang
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-10-14
得分:0 
我定义了S是外部变量..
外部变量可以不用做参数传递到INIT()的..
麻烦你看清楚点再说..

2007-10-22 23:20
wudong8866
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-10-9
得分:0 
你的TOP++后是什么啊,
{scanf("%c,%d",&(s.top->data),&(s.top->num));s.top++;}
printf(" %c-->%d",s.top->data ,s.top->num);
指向的是栈顶,并不是你刚刚存放数据的单元!

2007-10-23 08:36
zxc1998
Rank: 1
等 级:新手上路
威 望:1
帖 子:133
专家分:0
注 册:2007-3-21
得分:0 
s.top指向的始终都是空的;你输出的时候,输出s.base试试,就知道了
2007-10-23 21:06
andself
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-9-23
得分:0 
恩 啊 s.top 指向的是 栈顶 用栈底的指针 开始输出
我是这么想的 不知道 对不对

2007-10-23 22:47



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




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

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