m0_72588844 2022-09-19 22:01 采纳率: 85.7%
浏览 21
已结题

能不能看看我那里错了 没输出

问题遇到的现象和发生背景

没有输出
题目如下
设计函数求一元多项式的导数。

输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>

typedef struct S
{
    int xi;
    int zhi;
    struct S *next;
}S,*list;
list createlist()
{
    list L1=(list)malloc(sizeof(struct S));
    L1->next=NULL;
    list p,q;
    q=L1;
    int xi,zhi;
    while(scanf("%d %d",&xi,&zhi)!=EOF)
    {
        p=(list)malloc(sizeof(struct S));
        p->xi=xi;
        p->zhi=zhi;
        p->next=NULL;
        q->next=p;
        q=p;
    }
    return L1;
}
list qiudao(list L1)
{
   list q=L1,L2,p;
   L2=(list)malloc(sizeof(struct S));
   L2->next=NULL;
   p=L2;
   while(q->next!=NULL)
   {
       if(q->next->zhi==0)
       {
           free(q->next);
       }
       if(q->next->zhi!=0)
       {
          q->next->xi=q->next->xi*q->next->zhi;
          q->next->zhi=q->next->zhi-1;
          p->next=q->next;
          p=q;
       }
       q=q->next;
   }
   return L2;
}
list printlist(list L1)
{
    list p=L1;
    if(p->next==NULL)
    {
        printf("0 0");
        return 0;
    }
    while(p->next!=NULL)
    {
        printf("%d %d " ,p->xi,p->zhi);
        p=p->next;
    }
}
int main()
{
   list L1=createlist();
   list L2=qiudao(L1);
   printlist(L1);
   return 0;
}

运行结果及报错内容

没有输出

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-20 08:43
    关注

    while(p->next!=NULL)
    {
    printf("%d %d " ,p->next->xi,p->next->zhi);
    p=p->next;
    }

    而且最后应该是 printlist(L2);啊啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月4日
  • 已采纳回答 9月26日
  • 创建了问题 9月19日

悬赏问题

  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误