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

#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);
			else
				Arr[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);
				else
					printf("%d %d",Arr[j].a,Arr[j].b);
			}
		}
		printf("\n");
	}
	return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值