| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 680 人关注过本帖
标题:新手求学,大家看到的能帮帮就帮帮
取消只看楼主 加入收藏
a597910538
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2011-5-21
结帖率:100%
收藏
 问题点数:0 回复次数:4 
新手求学,大家看到的能帮帮就帮帮
各位好,刚刚学C也不久,在用的时候出现了很多的问题,还望大家帮帮忙!
这个程序的功能就是把100个以内的字母存入队列中(这是用链式存储结构的队列,后面我就不多说了),进过我的重复的测试和修改,发现没次输出的结果都是重复输出“没有生产计划”这个结果(看了代码你就明白了)!根据我的猜测应该是入队的函数有问题,可是我一把函数改动,就会报错!
#include<stdio.h>
#include<malloc.h>
#define maxsize 100
typedef struct node1
{
    char data;
    struct node1 *next;
}LINKQLIST;

typedef struct
{
    LINKQLIST *front,*rear;
}production;//生产
void initlinkqueuep(production *q)//初始化
{
    q->front=(LINKQLIST *)malloc(sizeof(LINKQLIST));
    (q->front)->next=NULL;
    q->rear=q->front;
}
char getlinkfrnetp(production *q)//数据读取
{
    char v;
    if(q->front==q->rear)
        printf("没有生产计划\n");
    else
        v=(q->front)->next->data;
    return v;
}

void enlinkqueuep(production *q,int x)//插入数据
{
    (q->rear)->next =(LINKQLIST *)malloc(sizeof(LINKQLIST));
    q->rear=(q->rear)->next;
    (q->rear)->next=NULL;
}
void main()//这个主函数的功能是  初始化队列===》将一组数据存入队列中===》输出队列中的数据
{
    production q;
    int i=0;
    char ch[maxsize];
    //initlinkqueuep(&q)    //初始化
    //printf("初始化成功!\n");
    printf("请输入生产计划:");
    for(i=1;i<maxsize;i++)
    {
        scanf("%3c",&ch);//输入字母
        if(ch[i]='\n') //当输入‘\n’输入循环结束
            break;
        else      
        {
            enlinkqueuep(&q,i);
        }
    }
    printf("返回值:");
    for(i=0;i<maxsize;i++)   
        {
            ch[i]=getlinkfrnetp(&q);
            if(ch[i]='\0')//若返回值是'\0'则结束循环,不过根据我的测试这个循环控制不了,不过我字母修改输出次数都没有变  
            {
                i=maxsize;
                printf("%d",i);
                break;
            }
            else
                printf("%2c",ch[i]);
        
        }
}
搜索更多相关主题的帖子: include 生产计划 
2011-06-06 17:49
a597910538
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2011-5-21
收藏
得分:0 
谢谢大家的帮助,大家辛苦了!
2011-06-07 07:58
a597910538
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2011-5-21
收藏
得分:0 
回复 6楼 cosdos
都是通过应用函数来进行操作!
谢谢!
2011-06-07 15:41
a597910538
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2011-5-21
收藏
得分:0 
这个是我结合大家给我的帮助修改!不过在输出这一环节上还有一些问题!
#include<stdio.h>
#include<malloc.h>
#define maxsize 100
typedef struct node1
{
    char data;
    struct node1 *next;
}LINKQLIST;

typedef struct
{
    LINKQLIST *front,*rear;
}production;//生产
void initlinkqueuep(production *q)//初始化
{
    q->front=(LINKQLIST *)malloc(sizeof(LINKQLIST));
    (q->front)->next=NULL;
    q->rear=q->front;
}
char getlinkfrnetp(production *q)//数据读取
{
    char v;
    if(q->front==q->rear)
        printf("没有生产计划\n");
    else
        v=(q->front)->next->data;
    return v;
   
}

void enlinkqueuep(production *q,char x)//插入数据
{
        (q->rear)->next =(LINKQLIST *)malloc(sizeof(LINKQLIST));
        q->rear=(q->rear)->next;
        q->rear->data=x;
        (q->rear)->next=NULL;
}
void main()
{
    production q;
    int i,j=0;
    char ch[maxsize];
    initlinkqueuep(&q);
    //enlinkqueuep(&q,'A');
    for(i=0;i<maxsize;i++)
    {
        scanf("%c",&ch[i]);
        enlinkqueuep(&q,ch[i]);
        if(ch[i]='\n')
            break;
    }
    //printf("%c",getlinkfrnetp(&q));
   for(i=0;i<maxsize;i++)
   {
        printf("%c",getlinkfrnetp(&q));
   }
2011-06-07 15:43
a597910538
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2011-5-21
收藏
得分:0 
输出只能输出一个数据,或者是一个数据重复输出的问题,我现在还在改进中!
谢谢大家帮助!
2011-06-07 15:45
快速回复:新手求学,大家看到的能帮帮就帮帮
数据加载中...
 
   



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

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