| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 387 人关注过本帖
标题:怎么从文件中读取两个多项式相乘后把结果输出到文件中
只看楼主 加入收藏
狸之城堡
Rank: 1
等 级:新手上路
帖 子:15
专家分:8
注 册:2014-2-28
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:1 
怎么从文件中读取两个多项式相乘后把结果输出到文件中
想从文件中读取两个多项式相乘后把结果输出到文件中
感觉是代码有问题,调试时一直过不去,出现这句话“未使用调试信息生成二进制文件。”,是什么意思呢????代码哪里错了,求大神解救啊
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"

typedef struct poly{
  float coef;
  int exp;
  struct poly *next;
}poly;

void printpoly(FILE *fp){
    float coef;
    int exp;
    while(!feof(fp)){
        fscanf(fp,"%f %d,",&coef,&exp);
        printf("%fx^%d,",coef,exp);
   
    }
}
int com(int a,int b){
   if(a==b)
       return 0;
   else
       if(a<b)
           return -1;
   else
       return 1;
}

poly *Creatpoly(FILE *fp){
   poly *h,*p,*q;
   h=(poly*)malloc(sizeof(poly));
   h->next=NULL;
   p=h;
   while(!feof(fp)){
     q=(poly*)malloc(sizeof(poly));
     fscanf(fp,"%f %d,",&q->coef,&q->exp);
     p->next=q;
     p=q;
     q->next=NULL;
   }
   return (h);
}

void printfy(poly *h){
  int tag=1;
  poly *p;
  p=h->next;
  while(tag){
      tag=0;
   if(p->next!=NULL){
       printf("%f,%d",p->coef,p->exp);
       p=p->next;
       tag=1;
  }
   else printf("%f,%d",p->coef,p->exp);   
  }
}

poly *addpoly(poly *ha,poly *hb){
  poly *qa,*qb,*p;
  int a,b;
  float m;
  p=ha;
  qa=ha->next;
  qb=hb->next;
  while(qa&&qb){
      a=qa->exp;
      b=qb->exp;
      switch(com(a,b)){
      case 0:
          m=qa->coef+qb->coef;
          if(m){
            qa->coef=m;
            p=qa;
          }
          else {
             p->next=qa->next;
             free(qa);
          }
          qa=p->next;
          qb=qb->next;
          break;
      case -1:{
              p=qa;qa=qa->next;
              break; }
      case 1:{
             p->next=qb;
             p=qb;
             qb=qb->next;
             p->next=qa;
             break;
             }
      }
  }
  while(qb){
  p->next=qb;
  qb=qb->next;
  }
  return (ha);
}
void mulitpoly(poly *ha,poly *hb){
  poly *p1,*p2,*q1,*q2,*e1,*e2;
  p1=ha->next;
  e1=(poly*)malloc(sizeof(poly));
  e1->next=NULL;
  e2=(poly*)malloc(sizeof(poly));
  e2->next=NULL;
  p2=e2;
  while(p1!=NULL){
      for(q1=hb->next;q1;q1=q1->next){
          q2=(poly*)malloc(sizeof(poly));
          q2->coef=p1->coef*q1->coef;
          q2->exp=p1->exp+q1->exp;
          p2->next=q2;
          p2=q2;
          q2->next=NULL;
      }
      p1=p1->next;
      addpoly(e1,e2);
  }
  printf("the mulit jieguo is:\n");
  printfy(e1);
}
void main(){
  poly *ha,*hb;
  FILE *fp,*fp1,*fp2;
 fp=fopen("D:\\Documents\\Visual Studio 2010\\Projects\\poly.txt","r");
 fp1=fopen("D:\\Documents\\Visual Studio 2010\\Projects\\poly1.txt","r");
 fp2=fopen("D:\\Documents\\Visual Studio 2010\\Projects\\poly2.txt","w");
 printf("the first poly is:\n");
 printpoly(fp);
  printf("the second poly is:\n");
  printpoly(fp1);
  printf("\n");
  ha=Creatpoly(fp);
  printfy(ha);
  hb=Creatpoly(fp1);
  printfy(hb);
 printf("the mulit jieguo is:\n");
 mulitpoly(ha,hb);



 fclose(fp);
 fclose(fp1);
 fclose(fp2);

}
搜索更多相关主题的帖子: include 多项式 二进制 信息 
2014-03-16 22:31
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:10 
代码是你自己写的么?

学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2014-03-16 22:57
快速回复:怎么从文件中读取两个多项式相乘后把结果输出到文件中
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025200 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved