Azrealhah 2019-03-20 16:27 采纳率: 0%
浏览 592

oj平台答案不能通过是输入输出格式不对嘛

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

typedef struct Node
{
  int data;
  struct Node*pNext;
}NODE,*PNODE;

void sort_list(PNODE pHead);
PNODE create_list();
void traverse_list(PNODE);
void delete_list(PNODE, int min,int max);

int main()
{
  int T;
  scanf("%d",&T);
  int q;
  int type;
  int min,max;
  int i;
  while(T--)
  {
    PNODE pHead = create_list();
    if(pHead->pNext!=NULL)
    {

    scanf("%d",&q);
    for(i=0;i<q;i++)
    {

      scanf("%d",&type);
      switch(type)
      {
        case 1:
        traverse_list(pHead);
        break;
        case 2:
        scanf("%d%d",&min,&max);
        delete_list(pHead,min,max);
        break;
        default:
        break;
      }
    }
    }
  }

  return 0;
}

PNODE create_list()
{
  int i,j,t,len;
  int val;
  PNODE pHead = (PNODE)malloc(sizeof(NODE));
  PNODE pTail = pHead;
  pTail->pNext = NULL;

  scanf("%d",&len);

  for(i=0;i<len;i++)
  {
    PNODE pNew = (PNODE)malloc(sizeof(NODE));
    scanf("%d",&val);
    pNew->data = val;
    pTail->pNext = pNew;
    pNew ->pNext = NULL;
    pTail = pNew;
  }
  sort_list(pHead);
  return pHead;
}
void traverse_list(PNODE pHead)
{
  PNODE p = pHead->pNext;
  if(p==NULL)
  {
    return;
  }

  while(p!=NULL)
  {
    printf("%d ", p->data);
    p = p->pNext;
  }
  printf("\n");
  return;
}

void delete_list(PNODE pHead,int min,int max)
{
  PNODE p,q,s;
  p = pHead;
  if(p->pNext==NULL)
  {
    return;
  }
  while(p->pNext&&p->pNext->data<=min)
    p = p->pNext;
  q = p->pNext;
  while(q && q->data<max)
  {
    s = q;
    q = q->pNext;
    free(s);
    s = NULL;
  }
  p->pNext = q;
  return;
}

void sort_list(PNODE pHead)
{
  int i,j,t;
  PNODE p = pHead->pNext;
  int len = 0;
  while (NULL != p)
  {
    ++len;
    p = p->pNext;
  }
  PNODE q;
  for(i=0,p = pHead->pNext;i<len-1;++i,p = p->pNext)
  {
    for(j=i+1,q=p->pNext;j<len;++j,q=q->pNext)
    {
      if(p->data>q->data)
      {
        t = p->data;
        p->data = q->data;
        q->data = t;
      }
    }
  }
  return;
}

图片说明

  • 写回答

1条回答 默认 最新

  • Azrealhah 2019-03-24 09:12
    关注

    printf("%d ", p->data);
    改为
    printf("%d", p->data);
    p = p->pNext;
    if(p!=NULL)
    printf(" ");

    原来是多输出空格了 好气啊
    
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配