关于#c语言#的问题,如何解决?

请问:为什么运行不了呀?代码问题是:
统计单链表中偶数位序的元素和并输出元素值。


#include
#include
#include
using namespace std;
typedef struct Node
{
    int data;
    struct Node*next;
}Node,*LinkList;
void Initlist(LinkList &L)
{
    L=(Node*)malloc(sizeof(Node));
    L->next=NULL;
}
void Creatlist(LinkList &L,int a[100],int n)
{
L= (Node *)malloc(sizeof(Node));
    L->next = NULL;   
 
    LinkList p;  
    for (int i = 0; i < n; i++) {
        p = (LinkList )malloc(sizeof(LinkList));  
        p->data = a[i];   
        p->next = L->next;   
        L->next=p;

    }
}
int deleteList (LinkList &L,int m)
{
    if(m<1)
    {
        printf("error\n");
        return 0;
    }
    int i=0;
    LinkList q,p;
    while(q!=NULL&&inext;
    }
    p=q->next;
    q->next=p->next;
    free(p);
    return 1;
}
void OutputList(LinkList &L)
{
    LinkList s;
    s=L->next;
    while(s)
    {
        cout<data<<' ';
        s=s->next;
    }
}
int main()
{
    int n,m,a[100];
    cin>>n;
    LinkList L;
    Initlist(L);
    Creatlist(L,a,n);
    cin>>m;
    if(deleteList(L,m))
    OutputList(L);
    if(L->next-NULL)
    cout<<"null";
    return 0;
}
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/224815
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:钢条切割问题,如果每次切割还要付出固定成本c和输出切割方案,解决思路和示例代码
  • 除此之外, 这篇博客: 关于C语言中逆序输出以及判断回文数题目的解法笔记中的 一、如何计算用户输入的数是几位数? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •   在做逆序输出以及判断回文数题目之前,先做下这道题,如何计算用户输入的数是几位数呢?

      思路:假设用户输入的数据是四位数1234
      我们知道,1234%10=4,我们就取到了用户输入数值中末位数字4这个数字,这时候我们就知道用户输入的数至少是个位数了(废话)。
      我们还知道,1234/10=123,我们可以利用他把用户输入的数值更新,更新之后,猜到没,我们再继续走步骤一,如果走得动,我们又知道用户输入的数值至少是两位数了。
      就这样再更新成12,取得末位数字2,我们就知道用户输入数值至少为三位数了,再更新成1,取得末位数字1,我们就知道用户输入的数值至少为四位数了这时候1/10=0,完犊子,更新不了了,停止,我们就知道用户输入的数值,最终是四位数
      具体代码如下:

    #include <stdio.h>
    
    int main(void)
    {
        int number = 0; //用来存放用户输入的数值
        int count = 0;//用来记录我们猜测的数值位数。
    
        printf("请输入一个数,我来判断你输入的是几位数:\n");
        scanf("%d", &number);
    
        while (number != 0)//当number/10等于0时
        {
            number = number / 10;//更新number
            count++;//先更新在记录,先记录在更新的话记录的是前一次数值的位数。
        }
    
        printf("您所输入的数是%d位数", count);
    
        return 0;
    }
    
    请输入一个数,我来判断你输入的是几位数:
    56654523
    您所输入的数是8位数
    

  • 您还可以看一下 韦语洋(Lccee)老师的一机一码加密、被破解自动销毁随时授权回收升级系列视频课程课程中的 演示如何破解一个软件绕过注册机(仅作为后续课程的了解)小节, 巩固相关知识点