#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
//單鏈表的定義
typedef struct node{
int data;
struct node *next;
}node,*linklist;
void createfromtail(linklist l)
{
node *s,*r;
char c;
int flag=1;
r=l;
while(flag)
{
c=getchar();
if(c!='2')
{
s=(node*)malloc(sizeof(node));
s->data=https://bbs.csdn.net/topics/c;
r->next=s;
r=s;
}
else
{ flag=0;
r-> next=NULL;
}
}
}
void Binadd(linklist l)
//用帶頭結點的單鏈表l存盤二進制數,實作加1運算
{
node *q,*r,*s;
q=l->next;
r=l;
while(q!= NULL)
//查找最后一個值域為0的結點
{
if(q->data=https://bbs.csdn.net/topics/=0)
r=q;
q=q->next;
}
if(r!=l)
r->data=https://bbs.csdn.net/topics/ 1;/*將最后一個值域為0的結點的值賦為1*/
//未找到值域為0的結點
else
{
s=( node*) malloc(sizeof(node));/* 申請新結點存放最高進位 */
s->data=https://bbs.csdn.net/topics/ 1; /*值域賦為1*/
s->next= l->next;
l->next=s; /*插入到頭結點之后*/
r=s;
}
r=r->next;
while(r!=NULL)//將后面的所有結點的值城賦為0
{
r->data=https://bbs.csdn.net/topics/0;
r= r->next;
}
}
void PrintList(linklist l)
{//輸出
linklist p = l->next;
while (p!=NULL)
{
printf("%d", p->data);
p = p->next;
}
}
void main()
{
linklist l;
l=(node*) malloc(sizeof(node));
createfromtail(l);
PrintList(l);
Binadd(l);
PrintList(l);
}
哪兒錯了
uj5u.com熱心網友回復:
c=getchar();if(c!='2')
{
s=(node*)malloc(sizeof(node));
s->data=https://bbs.csdn.net/topics/c-'0';//這里改一下
r->next=s;
r=s;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/198881.html
標籤:C++ 語言
上一篇:c語言
下一篇:C++為什么讀取不到檔案
