大发体育娱乐在线-大发体育娱乐官方网站-大发体育娱乐登录网址
做最好的网站

别太把面试题当回事儿,输入一个数的时候能成

来源:http://www.dfwstonefabricators.com 作者:关于计算机 人气:77 发布时间:2019-11-15
摘要:输入一个数的时候能成功输出,求解程序错误,注意先输入要删除的链表的值? #include #include struct book { int num; char pub[50] int many; struct book *next; }; struct book *creat() { struct book *p1,*p2,*head

输入一个数的时候能成功输出,求解程序错误,注意先输入要删除的链表的值?
#include
#include
struct book
{
int num;
char pub[50]
int many;
struct book *next;
};
struct book *creat()
{
struct book *p1,*p2,*head=NULL;
p1=p2=(struct book *)malloc(sizeof(struct book ));
scanf("%d%s%d",&p1->num,p1->pub,&p1->many);
while(p1->num!=0)
{ if(head==NULL)
head=p1;
else
{
p2=p1->next;
p2=p1;
}
p1=(struct book *)malloc(sizeof(struct book));
scanf("%d%s%d",&p1->num,p1->pub,&p1->many);
}
p1->next=NULL;
free;
return head;
}
struct book *del(struct book *head, int num )
{
struct book *p1,*p2=NULL;
if(head==NULL)
printf("该链表为空n");
else
{
p1=head;
while((p1->num!=num)&&(p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(p1->num==num)
{
if
head=p1->next;
else
p2->next=p1->next;
free;
printf("该结点已删除n");
}
else
printf("不存在该结点n");
}
return head;
}
int howmany(struct book *head)
{
struct book *p1;
int a=0;
char b[100]={"清华大学出版社"};
if(head==NULL)
printf("改链表为空n");
else
{
p1=head;
while(p1->num!=NULL)
if(p1->pub==b)
a=a+p1->many;
}
return a;
}
void list (struct book *head)
{
struct book *p;
if(head==NULL)
printf;
else
{
printf("链表信息如下:n");
p=head;
while
{
printf("%d%s%d",p->num,p->pub,p->many);
p=p->next;
}
}
}
int main()
{
struct book *head,*head1;
int m,n;
scanf("%d",&m);
head=creat();
printf("删除后的链表为n");
head1=del;
n=howmany;
printf;
list;
return 0;
}

 

  malloc()

 

#include <ctype.h>
#include <stdlib.h>

   struct bignum
   {
      char dig ;
      struct bignum * next ;  
   }
* LIST  ;

void my_malloc( LIST * );
void output( LIST );
LIST add( LIST ,LIST );
void my_free( LIST );
void move( LIST * );
int get_dig( LIST );
void put( int , LIST * );

{
  LIST p_num1 , p_num2 ;
  LIST p_sum ;
 
  puts("输入一个整数:");
  p_num1 = get_num();
  puts("输入一个整数:");
  p_num2 = get_num();

 
  output(p_sum);
  putchar('n');
 
  my_free(p_sum);
  my_free(p_num1);
  my_free(p_num2);
 
  return 0;
}

{
   if ( ( * p = malloc( sizeof ( * * p ) )) == NULL )
      exit(1);  
}

LIST get_num( void )
{
   LIST p = NULL ;
   int c ;
   while ( ( c = getchar() ) && isdigit( c ) )
   {
      LIST tmp ;
      my_malloc ( &tmp );
      tmp -> dig = c - '0';
      tmp ->next = p ;
      p = tmp ;
   }
   return p;
}

{
   if ( p->next != NULL )
      free( p->next );

}

{
   if ( p == NULL )
       return 0;
   return p ->dig ;
}

{
   if ( *pp == NULL )
      return ;
   *pp = (*pp) -> next ;  
}

{
   my_malloc( pp );
   (*pp)->dig = n ;
   (*pp)->next= NULL;  
}

{
   LIST p_res = NULL ;
   LIST * pp_res = & p_res ;
   char low , high = 0 ;
   while ( p1 != NULL || p2 != NULL )
   {
      low = high ;                            //high为前一次的进位                    
      low +=  get_dig( p1 ) + get_dig( p2 ) ;
      high = low / 10 ;                       //记下进位
      low %= 10 ;
     
      put( low , pp_res );                   //将和放入新结点
     
      pp_res = & (*pp_res)->next ;
     
      move( &p1 ) , move( &p2 ) ;
   }
  
   if ( high != 0 )                          //处理最高位的进位                
      put( high , pp_res );

}

void output( LIST p )
{
   if ( p->next != NULL )
      output( p->next );

   putchar( p -> dig + '0' );

}

) #include ctype.h #include stdlib.h struct bignum { char dig ; struct bignum * next ; } * LIST ; void my_malloc( LIST * ); void output( LIST ); LIST add( LIST ,LIST ); voi...

本文由大发体育娱乐在线发布于关于计算机,转载请注明出处:别太把面试题当回事儿,输入一个数的时候能成

关键词:

上一篇:读书领会

下一篇:没有了

频道精选

最火资讯