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 }