码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-01-27 13:39:25      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:错误   printf   code   stdio.h   int   clu   个数   scan   就是   

 

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 }

 

 

 

 

 

 

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

标签:错误   printf   code   stdio.h   int   clu   个数   scan   就是   

原文地址:https://www.cnblogs.com/yuxiaoba/p/8365140.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!