鱼C论坛

 找回密码
 立即注册
查看: 2905|回复: 8

[已解决]看不出来哪里有问题

[复制链接]
发表于 2018-11-30 19:57:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我看的懂错误提示,但是找不出错误在哪啊,好气

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

  3. #define OK    1
  4. #define ERROR 0

  5. typedef char ElemType;
  6. typedef int Status;
  7. typedef struct DualNode{
  8.         ElemType data;
  9.         struct DualNode *prior;
  10.         struct DualNode *next;
  11. }DaulNode,*DuLinkList;

  12. Status InitList(DuLinkList *L){
  13.         DualNode *p,*q;
  14.         int i;
  15.         *L=(DuLinkList)malloc(sizeof(DualNode));
  16.         if(!(L)){
  17.                 return ERROR;
  18.         }
  19.         (*L)->next=(*L)->prior=NULL;
  20.         p=(*L);
  21.         for(i-0;i<26;i++){
  22.                 q=(DualNode *)malloc(sizeof(DualNode));
  23.                 if(!q){
  24.                         return ERROR;
  25.                 }
  26.                 q->data='A'+1;
  27.                 q->prior=p;
  28.                 q->next=p->next;
  29.                 p->next=q;
  30.                 p=q;
  31.         }
  32.         p->next=(*L)->next;
  33.         (*L)->next->prior=p;
  34.         return OK;
  35. }

  36. void Caesar(DuLinkList *L,int i){
  37.         if(i>0){
  38.                 do{
  39.                         (*L)=(*L)->next;
  40.                 }while(--i);
  41.         }
  42.         if(i<0){
  43.                 do{
  44.                         (*L)=(*L)->next;
  45.                 }while(++i);
  46.         }
  47. }

  48. int main(){
  49.         DuLinkList L;
  50.         int i,n;
  51.         InitList(&L);
  52.         printf("请输入一个整数:");
  53.         scanf("%d",&n);
  54.         printf("\n");
  55.         Caesar(&L,n);
  56.         for(i=0;i<26;i++){
  57.                 L=L->next;
  58.                 printf("%c",L->data)data;
  59.         }
  60.         return 0;
  61. }
复制代码
最佳答案
2018-11-30 22:54:12
肥^o^帅 发表于 2018-11-30 22:40
然而运行出来却不对.......(T  _  T)


如果你想存入26个字母
q->data = 'A' + 1;  这里的1改成字母 i
@(724O4Y_`2P`@}FEVBF${B.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-30 20:18:49 | 显示全部楼层
#include<stdio.h>
#include<stdlib.h>

#define OK    1
#define ERROR 0

typedef char ElemType;
typedef int Status;
typedef struct DualNode{
        ElemType data;
        struct DualNode *prior;
        struct DualNode *next;
}DaulNode,*DuLinkList;

Status InitList(DuLinkList *L){
        DualNode *p,*q;
        int i;
        *L=(DuLinkList)malloc(sizeof(DualNode));
        if(!(L)){
                return ERROR;
        }
        (*L)->next=(*L)->prior=NULL;
        p=(*L);
        for(i-0;i<26;i++){    //这里i-0,改成i=0
                q=(DualNode *)malloc(sizeof(DualNode));
                if(!q){
                        return ERROR;
                }
                q->data='A'+1;
                q->prior=p;
                q->next=p->next;
                p->next=q;
                p=q;
        }
        p->next=(*L)->next;
        (*L)->next->prior=p;
        return OK;
}

void Caesar(DuLinkList *L,int i){
        if(i>0){
                do{
                        (*L)=(*L)->next;
                }while(--i);
        }
        if(i<0){
                do{
                        (*L)=(*L)->next;
                }while(++i);
        }
}

int main(){
        DuLinkList L;
        int i,n;
        InitList(&L);
        printf("请输入一个整数:");
        scanf("%d",&n);
        printf("\n");
        Caesar(&L,n);
        for(i=0;i<26;i++){
                L=L->next;
                printf("%c",L->data)data;    //这里第二个data删掉,改成printf("%c",L->data);
        }
        return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-30 20:29:30 | 显示全部楼层

但是报错的那句DualNode没有定义还是存在问题啊,我就是为了问这个
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-30 20:40:38 | 显示全部楼层
我的编译器可以正常编译,你这个应该要在每个DualNode前面加上 struct
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-30 21:26:51 | 显示全部楼层
rencaixiaomeng 发表于 2018-11-30 20:40
我的编译器可以正常编译,你这个应该要在每个DualNode前面加上 struct

看到你的kululu头像,感觉他一直在发出git、git、git的奸笑声
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-30 22:40:12 | 显示全部楼层
rencaixiaomeng 发表于 2018-11-30 20:40
我的编译器可以正常编译,你这个应该要在每个DualNode前面加上 struct

然而运行出来却不对.......(T  _  T)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-30 22:50:31 | 显示全部楼层
肥^o^帅 发表于 2018-11-30 22:40
然而运行出来却不对.......(T  _  T)


你不是创建26个节点,每个节点的data都初始化成'B'这个字符么
输出26个b是对的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-30 22:54:12 | 显示全部楼层    本楼为最佳答案   
肥^o^帅 发表于 2018-11-30 22:40
然而运行出来却不对.......(T  _  T)


如果你想存入26个字母
q->data = 'A' + 1;  这里的1改成字母 i
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-1 11:37:43 | 显示全部楼层
rencaixiaomeng 发表于 2018-11-30 22:54
如果你想存入26个字母
q->data = 'A' + 1;  这里的1改成字母 i

哦,大意了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-23 04:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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