标题:键盘进行输入之后 程序没有进行循环输出 是不是跟缓存区有关 ...
只看楼主
haidiyu
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2018-9-23
结帖率:0
已结贴  问题点数:20 回复次数:3 
键盘进行输入之后 程序没有进行循环输出 是不是跟缓存区有关 有何原理 解决方法是啥?
#include<stdio.h>
#include<malloc.h>
#define error 0;
typedef int elemtype;
 struct  nodeing
{
    elemtype *base;
    elemtype *top;
    int stacksize;
}node;
int main()
{

    node.base=(elemtype *)malloc(10*sizeof(elemtype));
    if(!node.base) return error;
    node.base=node.top;
    int e,i;
    for(i=0;i<=5;i++)
        {

            scanf("%d",&e);
            *node.top++=e;

        }
        getchar();
        node.top=node.base;
        printf("\n");
        for(i=0;i<5;i++)
            printf("%d ",*(node.top++));
    return 0;

}
搜索更多相关主题的帖子: 缓存 int node base top 
2018-09-28 22:54
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册:2018-3-30
得分:10 
程序代码:
#include<stdio.h>
#include<malloc.h>
#define error 0;
typedef int elemtype;

 struct  nodeing
{
    elemtype *base;
    elemtype *top;
    int stacksize;
}node;
int main()
{

    node.base=(elemtype *)malloc(10*sizeof(elemtype));
    if(!node.base) return error;
   // node.base=node.top;
   node.top = node.base;//上边那条写反了....
    int e,i;
    for(i=0;i<5;i++)//输入五个数据不需要等于的
        {

            scanf("%d",&e);
            *node.top++=e;

        }
    //    getchar();
        node.top=node.base;
        printf("\n");
        for(i=0;i<5;i++)
            printf("%d ",*(node.top++));
    return 0;

}

saber,别哭.
2018-09-29 08:36
haidiyu
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2018-9-23
得分:0 
回复 2楼 幻紫灵心
蟹蟹啦,这么明显的错误都没发现,惭愧
2018-10-01 16:58
MeandC
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:8
帖 子:245
专家分:792
注 册:2018-7-14
得分:10 
输出时我觉得申请一个新的指针变量来控制输出更好,栈顶指针没有进栈和出栈还是不要动的好。

C果然是有点难啊!
2018-10-01 22:43



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




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

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