#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 8
struct list
{
int data;
struct list *next ;
};
struct list* getlink(int b[],int b1);
void myput(struct list *p);
int main(void)
{struct list *head;
int a[N];
int i;
printf("請輸入8個數字:");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
head=getlink(a,N);
myput(head);
return 0;
}
struct list *getlink(int b[],int b1)
{
struct list *s,*h;
int i;
h=NULL;
for(i=b1-1;i>=0;i--)
{
s=(struct list*)malloc(sizeof(struct list));
s->data=https://bbs.csdn.net/topics/b[i];
s->next=NULL;
if(h=NULL)
h=s;
else
{
s->next=h;
h=s;
}
}
return h;
}
void myput(struct list *p)
{
printf("\n輸出最后鏈表的所有結點:");
while(p)
{
printf("%d",p->data);
p=p->next;
}
printf("\n");
}
uj5u.com熱心網友回復:
if(h=NULL) //錯誤在這一句,改成 if(h == NULL) 就正確了,條件判斷寫成賦值啦h=s;
uj5u.com熱心網友回復:
你這個代碼在讀取資料的時候錯了,這個鏈表函式struct list* getlink(int b[],int b1);錯誤,重新寫一個就好了,你這個函式只讀了一個資料進去,因為你的鏈表指向不對uj5u.com熱心網友回復:
這個是我幫你修改的代碼(如果覺得可以請結題一下):struct list *getlink(int b[], int b1)
{
struct list *s,*h;
struct list *head = NULL;
int i;
for ( i = b1-1; i>=0; i--)
{
h = (struct list *)malloc(sizeof(struct list));
h->data = b[i];
h->next = NULL;
if (head == NULL){
head = h;
}
else
{
s->next = h;
}
s = h;
}
return head;
}
uj5u.com熱心網友回復:
謝謝了,就錯在賦值號上
uj5u.com熱心網友回復:
多謝幫忙,改過來了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/159436.html
標籤:C語言
上一篇:輸入輸出
下一篇:c語言
