1010_一元多项式求导 (25)

来源:互联网 发布:染发剂推荐 知乎 编辑:程序博客网 时间:2024/05/16 05:19
#include<stdio.h>#include<string.h>typedef struct Num{int x;int y;}Num;int main(){Num a[2001];int i=0,j,k=0;while(scanf("%d%d",&a[i].x,&a[i].y)!=EOF) i++;for(j=0;j<i;j++)if(a[j].y){a[k].x*=a[k].y;a[k++].y--;}if(k!=0)printf("%d %d",a[0].x,a[0].y);for(j=1;j<k;j++)printf(" %d %d",a[j].x,a[j].y);if(k==0)printf("0 0");printf("\n");return 0;}

我最大的问题还是题目做少了,书看少了,没有培养一种思维。这道题目很简单,但是我是参考网上的思想才做出啦的。之前自己想的太复杂。主要是在输入输出上。而且还没有调试成功。把之前的代码也贴出来吧!

#include<stdio.h>#include<string.h>typedef struct Num{int a;int b;}Num;int tran(char *str,char *tail){int result=0,flag=0;char *temp=str;if(*temp=='-'){temp++;flag=1;}while(temp!=tail&&temp!='\0'){result=result*10+*temp-'0';temp++;}if(flag==1)result=-result;return result;}int main(){Num Arr[2001];int i,j,f;char *tail,*head;char str[10000];while(gets(str)!=NULL){i=0;head=str;j=0;tail=strchr(head,' ');while(tail!=NULL){if(j&1==0)Arr[i].a=tran(head,tail);elseArr[i++].b=tran(head,tail);head=tail+1;j++;tail=strchr(head,' ');}for(j=0;j<i;j++){Arr[j].a*=Arr[j].b;Arr[j].b--;}f=0;for(j=0;j<i;j++){if(Arr[j].a!=0){if(f!=0)printf(" %d %d",Arr[j].a,Arr[j].b);elseprintf("%d %d",Arr[j].a,Arr[j].b);}}printf("\n");}return 0;}




0 0
原创粉丝点击