7-16 一元多项式求导(20 分)(有关while(scanf("%d",&n)!=EOF))

 

7-16 一元多项式求导(20 分)

 

设计函数求一元多项式的导数。

输入格式:

以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:

以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0 

 

解题思路:1.一开始还以为这道题蛮简单的,刷刷刷就写了个用数组做的,然后有一个测试点运行超时

                  2.然后就换了一边输入一边输出,但是还是有个测试点:“无常数项的一般情况 ”通不过,然后在网上找了别人的代码

                    我发现他们都有写一句  while(scanf("%d",&n)!=EOF)  这丫什么鬼,然后又去网上找了

scanf的返回值由后面的参数决定

 

scanf("%d%d", &a, &b);

 

如果a和b都被成功读入,那么scanf的返回值就是2

 

如果只有a被成功读入,返回值为1

 

如果a和b都未被成功读入,返回值为0

 

如果遇到错误或遇到end of file,返回值为EOF

这句话主要解决

“测试输入包含若干测试实例。当N为0时,输入结束,该实例不被处理。”

                     好吧,其实还是有一些不懂,暂且先记着吧

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 int main()
 5 {
 6     int xi,zi;  //系数,指数
 7     int flag=0;
 8     while(scanf("%d %d",&xi,&zi)!=EOF){
 9         if( zi ){
10            if( flag )
11                 printf(" ");  //如果不是第一个数就先输出一个空格
12            else
13                 flag =1;
14            printf("%d %d",xi*zi,zi-1);
15         }
16         else break;
17     }
18     if( flag==0 ){
19         printf("0 0");
20     }
21     return 0;
22 }

 

 

 

 

 

 

转载于:https://www.cnblogs.com/yuxiaoba/p/8365140.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值