这个思路有一点错误还未找到,希望帮忙解决一下
#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