我是一个初学者,完全困惑。 我的 C++ 代码中出现两个错误:
程序:32:5: 错误:'main' 的重新定义 Program:3:6: 注意:'main' 的先前定义在这里
给定一个 n 次多项式。多项式的形式为 P(x) = anxn + an-1xn-1 + … + a0。对于给定的值 k 和 m,您需要在霍纳规则的第 m 次迭代结束时找到 P(k)。霍纳法则涉及的步骤如下,
Pn(x) = 一个
Pn-1 (x) = an-1 + x * Pn (x) 第一次迭代。
Pn-2 (x) = an-2 + x * Pn-1 (x) 第2次迭代。
.
.
P0(x) = a0 + x * P1(x) 第n次迭代。
一般来说,Pi(x) = ai + x * Pi + 1(x),P0(x)就是最终的结果。你程序的输入如下,
第 1 行包含由空格分隔的整数 n、m 和 k。
第 2 行包含由空格分隔的系数 an、an-1…、a0。
输入:整数 n、m、k 和上述系数。
输出:第 m 次迭代结束时的 P(k) 值。
示例输入:
2 2 5
3 2 1
示例输出:
86
约束:
1 <= n, k, m <= 10
0 <= ai <=10
#include <stdio.h>
#include <string.h>
int main() {
int num, i, j, result, index;
char name[11][11];
char temp[11];
scanf("%d\n", &num);
for(i = 0; i < num; i++)
scanf("%s\n", name[i]);
for(i = 0; i < num; i++) {
index = i;
for(j = i + 1; j < num; j++) {
result = strcmp(name[index], name[j]);
if(result > 0)
index = j;
}
strcpy(temp, name[index]);
strcpy(name[index], name[i]);
strcpy(name[i], temp);
}
for(i = 0; i < num-1; i++) {
printf("%s", name[i]);
printf("\n");
}
printf("%s", name[num-1]);
return 0;
}
#include<stdio.h>
int horner(int [], int, int);
int main()
{
int n, m, k, i;
int a[10];
scanf("%d%d%d",&n,&m,&k);
for (i=0; i<=n; ++i){
scanf("%d",&a[i]);
}
printf("%d",horner(a,m,k));
return 0;
}
int horner(int a[], int m, int k){
if (m==0){
return a[m];
}
else{
return a[m] + k * horner(a,m-1,k);
}
}
最佳答案
错误信息似乎很好地解决了问题。你有两个主要功能。你只能有一个,所以选择一个并删除另一个。
关于c++ - 调试霍纳规则程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22865019/