当前位置:编程学习 > C/C++ >>

C语言。请帮忙编一个程序

编写函数strcmp()用主函数调用实现两个字符串比较。(只用函数不用指针)
答案:多项式相加,也就是合并同类项。
#include <iostream>
using namespace std;
struct list
{
 int coef;//系数
 int exp;//指数
 list *next;
};
list *Creat()//创建带头结点的链表
{
 list *h,*r,*s;//h是头结点,存放项的个数,指向第一项
 r=h=new list;
 h->next=NULL;
 while(1)
 {
  s=new list;
  cin>>s->coef>>s->exp;
  if(s->coef==0)
   break;
  if(h->next==NULL)
  {
   r=s;//r=h->next
   h->next=r;
  }
  else
  {
   r->next=s;
   r=s;
  }
 }
 r->next=NULL;
 return h;
}
void Display(list *h)//输出链表
{
 list *p;
 p=h->next;
 cout<<"f(x)=";
 while(p)
 {
  if(p->next!=NULL)
     cout<<p->coef<<"X^"<<p->exp<<"+";
  else
   cout<<p->coef<<"X^"<<p->exp;
  p=p->next;
 }
 cout<<endl;
}
list *Huajian(list *h1)//合并同类项
{
 list *p1,*q1,*q2;
    for(p1=h1->next;p1;p1=p1->next)
  for(q1=p1,q2=q1->next;q2;q1=q2,q2=q2->next)
   if(p1->exp==q2->exp)
   {
    p1->coef+=q2->coef;
    q1->next=q2->next;
    delete q2;
    q2=q1;//q2=q1->next;
   }
 return h1;
}
list *Multiply(list *h1,list *h2)//实现两个链表相乘
{
 list *p1,*p2,*q1;
 int c,e;
        p1=h1->next;
 p2=p1->next;
 q1=h2->next;
 do
 {
  c=p1->coef;
  e=p1->exp;
  while(q1)
  {
                   p1->coef=c*q1->coef;
     p1->exp=e+q1->exp;
     if(q1->next!=NULL)
     {
        p1->next=new list;
        p1=p1->next;
     }
     q1=q1->next;
  }
  q1=h2->next;
  p1->next=p2;
  p1=p2;
  if(p2->next!=NULL)
     p2=p2->next;
 }while(p2);
 h1=Huajian(h1);
 return h1;
}
main()
{
 list *h1,*h2;
 h1=Creat();
 Display(h1);
 h2=Creat();
 Display(h2);
 h1=Multiply(h1,h2);
 Display(h1);
 return 0;
}
其他:strcmp是c语言标准的函数包含头文件 string.h就可以使用了。 “只用函数不用指针”是什么意思? 代码如下。。。。在win-tc里面调试成功的。。。希望能帮到你。。。

#include <stdio.h>

int strcmp(char s1[],char s2[]){
    int i;

    for(i=0;i<strlen(s1)&&i<strlen(s2);i++){
        if(s1[i]!=s2[i]) return s1[i]-s2[i];
    }

    return strlen(s1)-strlen(s2);
}

void main(){
    char s1[]="aaa",s2[]="ccc";
    printf("%d",strcmp(s1,s2));
    getch();
}

上一个:C语言 指针 输入10个数字 在输入一个数字 在十个数字中 找出第几个!
下一个:C语言 例如:输入十个数: 1,2,3,4,5,6,7,8,9,10 输入查找数:3 找到:a[2]; 输入查找数20未找到

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,