程序设计入门——C语言_中国大学MOOC(慕课) (icourse163.org)
code1:#includecode2:#include int main(){ int a[101]={0}; int i,mi=0,xi,cnt=0,max=0,nax=0,flag=0; while(1){ scanf("%d %d",&mi,&xi); a[mi]+=xi; if(max =0;i--){ if(a[i]!=0&&nax=0;i--){ if(a[i]!=0){ flag=1; if(i==nax){ if(a[i]==1||a[i]==-1){ if(i==0) printf("%d",a[i]); else if(i==1) { if(a[i]==1) printf("x"); if(a[i]==-1) printf("-x"); } else{ if(a[i]==1) printf("x%d",i); if(a[i]==-1) printf("-x%d",i); } } else{ if(i==0) printf("%d",a[i]); else if(i==1) printf("%dx",a[i]); else printf("%dx%d",a[i],i); } } else if(i==0) printf("%+d",a[i]); else if(i==1){ if(a[i]==1) printf("+x"); else if(a[i]==-1) printf("-x"); else printf("%+dx",a[i]); } else{ if(a[i]==1) printf("+x%d",i); else if(a[i]==-1) printf("-x%d",i); else printf("%+dx%d",a[i],i); } } } if(flag==0) printf("0"); return 0; }
#include总结: code1#include #include int main(){ int a[101]={0}; int i,mi=0,xi,cnt=0,max=0,nax=0,flag=0; while(1){ scanf("%d %d",&mi,&xi); a[mi]+=xi; if(max =0;i--){ if(a[i]!=0&&nax=0;i--){ if(a[i]!=0){ flag=1; if(a[i]<0) printf("-"); if(a[i]>0&&cnt) printf("+"); if(i==0) { printf("%d",abs(a[i])); cnt++; } if(i==1&&abs(a[i])==1){ printf("x"); cnt++; } if(i==1&&abs(a[i])!=1){ printf("%dx",abs(a[i])); cnt++; } if(i!=0&&i!=1&&abs(a[i])==1){ printf("x%d",i); cnt++; } if(i!=0&&i!=1&&abs(a[i])!=1){ printf("%dx%d",abs(a[i]),i); cnt++; } } } if(flag==0) printf("0"); return 0; }
吐槽一下题目,没有交代清楚幂次为1的时候是否还输出幂次(虽然例子里显示没有),也没有说明当系数为1的时候是否输出系数(应该是不输出),耽误时间……
当幂次最大的时候(正系数前不加+号),考虑①系数为1或-1②其他(如3x2)。其中①又考虑三种情况:幂次为0(如1或-1),幂次为1或-1(如x或-x),其他(x3或-x3);其中②也要相应考虑这三种情况。
当幂次为1的时候,考虑两种情况:①系数为1或-1②其他。
当幂次为0的时候,直接输出系数
其他情况(幂次不为最大,0或1),最普通情况。
总之要考虑,幂次和系数的各种不同情况
code2把code1简化了一下:把符号的判断单独提取出来,后面都输出系数的绝对值;其他的一共有5种情况(a为常数):a,x,ax,xa,axa;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)