运行-这输出结果不对,怎么办?

问题描述

这输出结果不对,怎么办?
 #include <stdio.h>
#include <stdlib.h>
typedef struct node
{
    int data;
    struct node *next;
}Node;

Node *createLink()
{
    Node *head=(struct node*)malloc(sizeof(struct node));
    Node *temp=head;
    int i=0;
    int a[10] = {1,2,3,5,7,9,10,14,15,20};
    while (i<10)
    {
        Node *n=(struct node*)malloc(sizeof(struct node));
        n->data = a[i];
        n->next = NULL;
        if(i==0)
        {
            head=temp=n;
        }
        else
        {
            temp->next = n;
            temp = n;
        }
        i++;
    }
    return head;
}

Node *insert(Node *head,int data)//就是这个函数
{
    Node *p=head,*pr=NULL,*pb=head;
    pr=(Node *)malloc(sizeof(struct node));
    if(pr==NULL)
    {
        printf("NO enough memory!n");
        return head;
    }
    pr->data=data;
    pr->next=NULL;
    while(p->data<data&&p->next!=NULL)
    {
        pb=p;
        p=p->next;
    }
    if(p->data>=data)
    {
        if(p==head)
        {
            pr->next=head;
            head=pr;
        }
        else
        {
            p=pb;
            pr->next=p->next;
            p->next=pr;
        }

    }
    else
    {
        p->next=pr;
    }
    return head;
}

void Print(Node *head)
{
    head=head->next;
    while (head!=NULL)
    {
        printf("%d ", head->data);
        head=head->next;
    }
}

int main()
{
    Node *h1=NULL;
    h1=createLink();
    int d;
    scanf_s("%d", &d);
    h1=insert(h1,d);
    Print(h1);
    system("pause");
    return 0;
}

解决方案

第一个问题:

void Print(Node *head)
{
    head=head->next;     // 会导致第一个元素不会输出
    while (head!=NULL)
    {
        printf("%d ", head->data);
        head=head->next;
    }
}

解决方案二:

是你的print函数有问题,没有输出头节点。

解决方案三:

 void Print(Node *head)
{
    while (head->next != NULL)
    {
        head = head->next;
        printf("%d ", head->data);

    }
}

解决方案四:

时间: 2024-11-05 17:31:38

运行-这输出结果不对,怎么办?的相关文章

编程c语言-这个程序可以运行,但结果不对!!

问题描述 这个程序可以运行,但结果不对!! 这个程序可以运行,但结果不对!!同一个字符重复出现好多次,最后出现乱码的情况,应该怎么改呢! 解决方案 因为第三个for循环了很多次,只要if的条件成立,就会执行输出,所以重复输出一个字符.最后乱码,是因为a,b这两个字符串没有装满字符. 解决方案二: 由于不明白你的意图是什么,所以不知道怎么改.我猜测你的意思并建议这样改:第一个for循环条件改为a[i]!='',第二个循环条件改为b[j]!='',第三个for去掉,不要了.直接在if语句中的c[k]

opencv svm predict输出结果不对?

问题描述 opencv svm predict输出结果不对? 请教各位大侠: 我在使用opencv3.0的SVM进行图像分类时,训练样本为图像的灰度值(float型,最小0,最大255,均值2.0), 当灰度大于3.0时,lables设为1.0,小于3.0时,设置为-1.0:随便选了一种核函数进行训练, 然后再拿原图作为测试样本,结果在"response = svm->predict(sampleMat);"结果怎么不是1或-1,而是很大的一个负数(-1082130432.000

c++-C语言 输出结果不对(统计三角形区域内多少棵树问题)

问题描述 C语言 输出结果不对(统计三角形区域内多少棵树问题) 果园里的数 xy坐标为1到99的整数,输入一个三角形的坐标 统计内部和边界有多少棵树 样例输入1.5 1.5 1.5 6.8 6.8 1.5 样例输出15 以下是通过有向面积编写的程序 哪里错了 为何输出30 #include double area2(double x0,double y0,double x1,double y1,double x2,double y2) { return x0*y1+x1*y2+x2*y0-x2*

图像加减运算,为什么输出结果不对

问题描述 图像加减运算,为什么输出结果不对 #include #include #include #include #include using namespace std; //图像加减运算 //unsigned char *lpSrc1:原图像1像素指针 //unsigned char *lpSrc2:原图像2像素指针 //unsigned char *lpDst:目标像素指针 int main() { IplImage * image1, *image2, *image3; image1

c语言-运行的时候结果不对,改了十多次还是不对,求各位大神解答

问题描述 运行的时候结果不对,改了十多次还是不对,求各位大神解答 #include #include #include using namespace std; #define PI 3.1415 class circle { protected: double R; public: circle(){R=0;} circle(double r){R=r;} virtual void display(){cout<<"请输入半径: "; cin>>R;} };

c c++编程-有没有大神看下 ,小弟刚学c++这个代码运行后输出str不是输出100为什么

问题描述 有没有大神看下 ,小弟刚学c++这个代码运行后输出str不是输出100为什么 #include #include using namespace std; int main(void) { char *str = new char[100]; strcpy(str,"hello imooc"); cout << "*str"; delete[] str; system("pause"); return 0; } 解决方案 如

为什么,输出的不对,我是照着书上写的,c语言

问题描述 为什么,输出的不对,我是照着书上写的,c语言 #include "stdio.h" #include "conio.h" int main() { int day,month,year,sum,leap; scanf("%d,%d,%d",&year,&month,&day); switch(month)//先计算某月以前月份的天数 { case 1: sum=0;break; case 2: sum=31;br

1到100产生随机数 并猜产生的随机数 如果猜对直接输出 猜不对继续猜问题

问题描述 希望大神们给指点一下谢谢! 解决方案 解决方案二:继续猜随机数要重新生成么?解决方案三:嗯是的给指点一下谢谢喽解决方案四:while(1==1){//产生一个随机数inta=随机数://输入的数intb=输入的数:if(a==b){//输出结果//终止循环break;}system.out.println("继续猜");}解决方案五:importjava.util.Scanner;publicclassGuess{publicstaticvoidmain(String[]ar

为什么logback在tomcat中运行时日志文件输出到eclipse目录下

问题描述 使用相对路径时,同样的logback日志配置文件,在jetty中运行会输出日志到当前项目的路径下,而部署到tomcat中就输出到eclipse根目录下了,有什么办法可以解决这个问题?我想了很久都不知道为什么.logback部分配置如下<appendername="FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicyclass="ch