急C語言糾錯

2023-01-04 18:45:41 字數 1197 閱讀 1767

1樓:

對你的程式做了修改,現在不會出現那個問題了。主要的改動是compare函式裡我註釋掉的那裡,由於多申請了一塊空間導致的你後面會出現一堆亂七八糟的數字。增加了一個flag標誌欄位。

還有把return(p0);這句話提到程式末尾,消除了警告。

總之,程式邏輯是你的,我儘可能照你的思路改了。解決了現有的問題。

#include

#include

# define null 0

struct message *creat(int m);

void insert(struct message *p,int i);

struct message *compare(struct message *p1,struct message *p2);

void print(struct message *p);

struct message

; void main()

struct message *creat(int m)

return(p);

} void insert(struct message *p,int i)

} struct message *compare(struct message *p1,struct message *p2)

flag=1;

if(p1->b==p2->b)

else if(p1->b>p2->b)

else if(p1->bb)

//p->next=(struct message *)malloc(sizeof(struct message));

//p = p->next;

}if(p1==null&&p2==null)

else if(p1==null&&p2!=null)

p=null;

} else if(p1!=null&&p2==null)

p=null;

} return (p0);

} void print(struct message *p)

printf("[%d]x[%d]",p->a,p->b);

p=p->next;

while(p!=null)

printf("\n");}

2樓:標苦運先

警告原因:compare函式最後一行沒有返回值

求高手,C語言糾錯

include int main for i 1 i 10 i 不需要return else return 0 for i 0 i 9 i 不需要return else return 0 for i 1 i 9 i sum float s 8 printf f sum float的格式符是f,不是d...

c語言問題,急求,C語言問題,急求!!

一 不知道你是怎麼輸入的,可以提供一下你的執行截圖,幫你看看二 你程式中少了第三個輸入語句啊 printf 請輸入第一個字串 n scanf s a printf 請輸入第二個字串 n scanf s b printf 請輸入第三個字串 n scanf s c 這裡是不是應該加上這個?char p1...

二級c語言題,急求解,二級C語言題,急求解

選d 比較淺顯的來說,左移n位就是乘以2的n次方,右移n位就是除以2的n次方。具體細節如下 c語言裡的左移和右移運算 先說左移,左移就是把一個數的所有位都向左移動若干位,在c中用 運算子.例如 int i 1 i i 2 把i裡的值左移2位 也就是說,1的2進位制是000.0001 這裡1前面0的個...