| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1203 人关注过本帖
标题:为什么输出窗口首字母会是乱码
取消只看楼主 加入收藏
及也
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-11-4
结帖率:0
收藏
 问题点数:0 回复次数:2 
为什么输出窗口首字母会是乱码
程序代码:
#include<stdio.h>
#include<malloc.h>

#define MAXLEN 100
typedef char DataType;

typedef struct node
{
    DataType data;
    struct node *next;
}ListNode,*LinkList;

int GetLength(LinkList head);//求单链表长度
LinkList CreatListF(void);//头插法建单链表
LinkList CreatListL(void);//尾插法建单链表
ListNode *GetNode(LinkList head, int i);//在单链表中按序号查找元素
ListNode *Locate(LinkList head, DataType x);//在单链表中按值查找元素
void InsertList(LinkList head, DataType x, int i);//在单链表中插入元素
void DeleteList(LinkList head, int i);//删除元素
void delete_list(LinkList head);//删除重复的元素
void PutOut(LinkList head);//单链表输出

int main(void)
{
    int Length;
    ListNode *p;
    LinkList head=NULL;
    head = CreatListL();
    p = (ListNode*)malloc(sizeof(ListNode));
    PutOut(head);
    Length = GetLength(head);
    printf("长度为:%d\n", Length);
    p=GetNode(head, 2);
    printf("该位置的值为:%c\n", p->data);
    p = Locate(head, 'F');
    printf("该位置的值为:%c\n", p->data);
    InsertList(head, 'L', 3);
    PutOut(head);
    DeleteList(head, '3');
    PutOut(head);

    free(p);

    return 0;
}

LinkList CreatListF(void)//头插法建单链表
{
    char ch;
    LinkList head = (ListNode*)malloc(sizeof(ListNode));
    ListNode *s;
    ch = getchar();
    while (ch != '\n')
    {
        s = (ListNode*)malloc(sizeof(ListNode));
        s->data = ch;
        s->next = head->next;
        head->next = s;
        ch = getchar();
    }
    return head;
}

LinkList CreatListL(void)//尾插法建单链表
{
    char ch;
    LinkList head = (LinkList *)malloc(sizeof(LinkList));
    ListNode *s, *r;
    r = head;
    ch = getchar();
    while ((ch = getchar()) != '\n')
    {
        s = (ListNode *)malloc(sizeof(ListNode));
        s->data = ch;
        r->next = s;
        r = s;
    }
    r->next = NULL;
    return head;
}

ListNode *GetNode(LinkList head, int i)//在单链表中按序号查找元素
{
    int j;
    ListNode *p;
    if (i<1 || i>GetLength(head))
        exit(1);
    p = head->next;
    j = 1;
    while (p != NULL&&j < i)
    {
        p = p->next;
        j++;
    }
    return p;
}

ListNode *Locate(LinkList head, DataType x)//在单链表中按值查找元素
{
    ListNode *p = head->next;
    while (p&&p->data != x)
        p = p->next;
    return p;
}

void InsertList(LinkList head, DataType x, int i)//在单链表中插入元素
{
    ListNode *p, *q, *s;
    int j = 1;
    p = head;
    if (i<1 || i>GetLength(head) + 1)
        exit(1);
    s = (ListNode *)malloc(sizeof(ListNode));
    s->data = x;
    while(j <= i)
    {
        q = p;
        p = p->next;
        j++;
    }
    s->next = q->next;
    q->next = s;
}

void DeleteList(LinkList head, int i)//在单链表中删除元素
{
    ListNode *p, *q;
    int j = 1;
    p = head;
    if (i<1 || i>GetLength(head))
        exit(1);
    while (j < i)
    {
        p = p->next;
        j++;
    }
    q = p->next;
    p->next = q->next;
    free(q);
}

void delete_list(LinkList head)//在单链表中删除重复的结点
{
    ListNode *p, *q, *s;
    p = head->next;
    if (p == NULL) 
        exit(1);
    while (p->next != NULL)
    {
        q = p;
        while (q->next)
        {
            if (q->next->data == p->data)
            {
                s = q->next;
                q->next = q->next->next;
                free(s);
            }
            else q = q->next;
        }
        p = p->next;
    }
}

int GetLength(LinkList head)//求单链表长度
{
    int Length=0;
    ListNode *p;
    p = head;
    while (p)
    {
        p = p->next;
        Length++;
    }

    return Length;
}

void PutOut(LinkList head)//单链表输出
{
    ListNode *p;
    p = head;
    while (p != NULL)
    {
        printf("%c", p->data);
        p = p->next;
    }
    printf("\n");
}

图片附件: 游客没有浏览图片的权限,请 登录注册

如图,输入ABCDEFG后输出中A变成了乱码,就算首字母换成其他也是同样问题,求大神帮助解决一下,非常感谢
搜索更多相关主题的帖子: 字母 color 
2017-03-29 22:36
及也
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-11-4
收藏
得分:0 
回复 3楼 renkejun1942
这都是书上的的源代码,我也不知道问题出现在哪里
2017-03-30 16:41
及也
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-11-4
收藏
得分:0 
数据结构(马睿版)的教材,里面代码确实有些不严谨,不过还是谢谢大神
2017-03-30 21:04
快速回复:为什么输出窗口首字母会是乱码
数据加载中...
 
   



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

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