程式編譯沒有問題但是運行的時候會停不下來一直輸出數字
代碼如下:
#include <stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
int i=0,n,a[MAXSIZE];
typedef struct LNode{
int data;
struct LNode *next;
}LNode;
void creatlist(LNode *C,int a[],int n){
LNode *s,*r;
C=(LNode *)malloc(sizeof(LNode));
C->next=NULL;
r=C;
for(i=0;i<n;++i){
s=(LNode*)malloc(sizeof(LNode));
s->data=https://bbs.csdn.net/topics/a[i];
r->next=s;
r=r->next;
}
r->next=NULL;
}
int printlist(LNode *C,int n){ //想輸出看一下
for(i=0;i<n;++n){
printf("%d ",C->data);
C=C->next;
}
printf("%d",C->data);
}
int main(){
LNode *C;
C=(LNode*)malloc(sizeof(LNode));
printf("請輸入你要輸入的元素個數:");
scanf("%d",&n);
printf("請輸入你要輸入的元素:");
for(i=0;i<n;++i){
scanf("%d",&a[i]);
}
creatlist(C,a,n); //我這樣寫對嗎?
printlist(C,n); //我這樣寫對嗎?
return 0;
}
其中的尾插法演算法是參考書上的,圖片如下:

另外想問一下在圖片第一行中的LNode *&C代表的是什么?書上講解的是指標型變數在函式體中改寫的寫法,但是放在編譯器中會報錯,這是為什么?還有想問一下“&”和“*”有什么區別?
本人實屬小白,希望能有人能指導,如果你知道其中一部分問題的答案,還希望不吝賜教,不需要一次全部解答。
uj5u.com熱心網友回復:
* (傳指標)是指標的參考& 是傳值
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/267646.html
標籤:數據結構與算法
