数据结构 7-16一元多项式求导(20分)

设计函数求一元多项式的导数。
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
输入样例:
3 4 -5 2 6 1 -2 0

输出样例:
12 3 -10 1 6 0

scanf函数返回值问题:
scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。如:scanf("%d %d",&a,&b);函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;如果只有a被成功读入,返回值为1;如果a和b都未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF。

思路:
为了使输出的最后没有多余的空格,每次循环的输出应该为 空格、系数、指数。第一次输出不输出空格(flag=0)。该题比较特殊,当输入为常数多项式或者零多项式时,需要输出0 0,此时flag能够判断。

代码如下:

#include
using namespace std;
int main()
{
 int a, b, flag = 0;
 while (scanf("%d %d", &a, &b) != EOF)
 {
  if (b != 0)
  {
   if (flag == 1)
    printf(" ");
   printf("%d %d", a*b, b - 1);
   flag = 1;
  }
 }
 if (flag == 0)
  printf("0 0");
 return 0;
}

你可能感兴趣的:(数据结构 7-16一元多项式求导(20分))