1010 一元多项式求导

博客讨论了一元多项式求导过程中遇到的思路错误,作者寻求帮助解决,并提供了测试结果和参照他人思路的第二种方法。
摘要由CSDN通过智能技术生成

这个思路有一点错误还未找到,希望帮忙解决一下

#include <stdio.h>
int main()
{
    int a,b,flag=0;
    while(1)
    {
        scanf("%d %d",&a,&b);
        if(a==0&&b==0)  //零多项式
        {
            printf("0 0");
            break;
        }
        else if(a!=0&&b!=0)  //系数不为0
        {
            if(flag==1)
            {
                flag=0;
                printf(" ");
            }
            a=a*b;
            b=b-1;
            if(b==0)
            {
                printf("%d %d",a,b);
                break;
            }
            else
            {
                printf("%d %d",a,b); 
                flag=1;
            }
        }
        else   //常数项
            break;
    }
    return 0;
}

这个是测试结果
在这里插入图片描述
第二个思路(参照别人写的)

#include <stdio.h>
int main()
{
	int a,b;
	int flag = 0;
	while(scanf("%d %d",&a,&b)!=EOF)
    {
		if(b!=0)
        {
			if(flag == 0)
                printf("%d",a*b);
			else 
                printf(" %d",a*b);
			printf(" %d",b-1);
			flag = 1;
		}
	}
	if(flag==0)
        printf("0 0");
	return 0;
} 

在这里插入图片描述
while···EOF型:

如果题目没有给定输入的结束条件,那么就默认读取到文件末尾.
虽然scanf函数平时可以直接作为一条语句使用,但它也是有返回
值的,scanf的返回值为其成功读入参数的个数.
正常的控制台中的输入一般是不会失败的,只有在读取文件时到
达文件末尾导致的无法读取现象,才会产生读入失败.这个时候
scanf函数返回-1而不是0,且C语言中使用EOF(即End Of File)
来代表-1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值