小白求助
输入有两行。第一行是一个整数n(0 <= n <= 100)表明多项式的最高次幂为n。
第二行包含n+1个非负整数,C n ,C n-1 ,C n-2 ,C n-3 ,C n-4 ,… ,C 1,C 0(0 <= C i <= 1000)且Cn != 0。Ci是幂次为i的项的系数。
输出
在一行内输出f'(x)的结果。
(1) 如果g(x) = 0那么直接输出0
(2) 如果g(x)形如C m(x^m)+C m-1(x^(m-1))+…+C 0(C m!=0)那么输出C m…C 0
(3) 相邻整数之间有单个空格。
样例输入
2
5 3 6
样例输出
10 3
#include <stdio.h>
int main(void)
{
int pow,i,j;
int xishu;
scanf("%d",&pow);
for (i = 0;i <= pow;i++)
scanf("%d ",&xishu);
for (--i,j = 0;i >= 0;i--,j++)
printf("%d ",xishu * j);
return 0;
}
大佬可以教下我是哪里错了吗?{:10_254:} 你的代码有两个小问题。首先,在输入系数时,你在 scanf 函数中的格式字符串中多了一个空格,导致输入不匹配。你应该将 scanf("%d ",&xishu[ i]) 改为 scanf("%d",&xishu[ i]) 。其次,在计算导数时,你将每个系数乘以了它的幂次,而实际上应该是乘以它的幂次减一。所以你应该将 xishu[ i] * j 改为 xishu[ i] * (j-1) 。下面是修改后的代码:
#include <stdio.h>
int main(void)
{
int pow,i,j;
int xishu;
scanf("%d",&pow);
for (i = 0;i <= pow;i++)
scanf("%d",&xishu[ i]);
for (--i,j = 0;i >= 0;i--,j++)
printf("%d ",xishu[ i] * (j-1));
return 0;
}
这样修改后,你的代码就可以正确计算多项式的导数了。 你的代码有一处小错误,导致输出结果不符合预期。在输入系数时,你使用了 scanf("%d ",&xishu),其中 %d 表示读取整数,但是加上空格 " " 可能会导致换行符的读取问题。正确的写法应该是 scanf("%d", &xishu),即去掉空格。
另外,你的循环中有一些小问题。以下是修改后的代码:
#include <stdio.h>
int main(void)
{
int pow, i, j;
int xishu;
scanf("%d", &pow);
for (i = 0; i <= pow; i++)
scanf("%d", &xishu);
for (i = pow, j = 1; i >= 1; i--, j++)
printf("%d ", xishu * j);
printf("0\n"); // 输出最后一项的系数为0
return 0;
}
修改后的代码会依次计算每一项的导数,并按照要求输出。最后加入了一个额外的输出语句,将最后一项的系数0输出,以满足题目要求。
希望这个解答能够帮到你!如果还有其他问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页:
[1]