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的個...