鱼C论坛

 找回密码
 立即注册
查看: 2405|回复: 2

为什么呀?scanf有问题吗?

[复制链接]
发表于 2022-12-16 18:58:53 | 显示全部楼层 |阅读模式
20鱼币
输入数字后就
#include <stdio.h>
#include <stdlib.h>

struct Node{
        char s;
        struct Node *prior;
        struct Node *next;
};

struct Node *gengerate_letter(void);
struct Node *move(struct Node *head, int i);
void print_Node(struct Node *head);
void clerr(struct Node **head);

int main(){
        int i;
        struct Node *head;

        head = gengerate_letter();

        printf("请输入移动的距离:");
        printf("-----------\n");
        scanf("%d", &i);
        printf("-----------");

        head = move(head, i);
        print_Node(head);

        clerr(&head);
}

struct Node *gengerate_letter(void){
        int i;
        struct Node *head = NULL;
        struct Node *node, *now;

        for (i = 0; i < 26; i++){
                now = (struct Node *)malloc(sizeof(struct Node));
                if(!now){
                        exit(0);
                }
                now->s = 'A' + i;

                if (head == NULL){
                        head = now;
                        node = head;
                }
                else{
                        node->next = now;
                        now->prior = node;
                        node = now;
                }
        }
        node->next = head;
        head->prior = node;

        return head;
}

struct Node *move(struct Node *head, int i){
        int a;
        struct Node *node;

        node = head;
        for (a = 0; a != i; ){
                if (a < i){
                        node = node->next;
                        a++;
                }
                else{
                        node = node->prior;
                        a--;
                }
        }

        return node;
}

void print_Node(struct Node *head){
        struct Node *node;

        node = head;
        while (node->next != head){
                printf("%c", node->s);
                node = node->next;
        }
}

void clerr(struct Node **head){//将单链表清空
        struct Node *node, *temp;

        node = *head;
        while (node->next){
                temp = node;
                node = node->next;
                free(temp);
        }
        free(node);
}
卡了 CX0`71BTBF3]NR1T%VFFGSS.png

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-16 19:59:20 | 显示全部楼层
好像是清空链表出问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-16 20:36:05 | 显示全部楼层
没问题了,重新写了一遍删除函数 [J17X4J}KA[4A751H$CRJZW.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 13:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表