我是初学者,完全糊涂了。 我的c ++代码中出现两个错误:
程序:32:5:错误:重新定义' main' 节目:3:6:注意:以前的定义'主要'在这里
给出n次多项式。多项式的形式为P(x)= anxn + an-1xn-1 + ... + a0。对于给定值k和m,您需要在Horner规则的第m次迭代结束时找到P(k)。 Horner规则中涉及的步骤如下:
Pn(x)= an
Pn-1(x)= an-1 + x * Pn(x)第一次迭代。
Pn-2(x)= an-2 + x * Pn-1(x)第二次迭代。
P0(x)= a0 + x * P1(x)第n次迭代。
通常,Pi(x)= ai + x * Pi + 1(x)和P0(x)是最终结果。程序的输入如下,
第1行包含由空格分隔的整数n,m和k。
第2行包含以空格分隔的系数a,an-1 ...,a0。
INPUT:整数n,m,k和上述系数。
OUTPUT:第m次迭代结束时的P(k)值。
示例输入:
2 2 5
3 2 1
示例输出:
86
约束:
1 <= n,k,m <= 10
0&lt; = ai&lt; = 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);
}
}
答案 0 :(得分:2)
错误消息似乎已经很好地解决了问题。你有两个主要功能。你只能有一个,所以选择一个并删除另一个。
答案 1 :(得分:1)
Program:32:5: error: redefinition of 'main'
在&#34; Program&#34;,第32行,第5列中,标识符main
在同一范围内第二次定义。
Program:3:6: note: previous definition of 'main' was here
第一个定义是在&#34; Program&#34;,第3行,第6列。
你有。您不能两次定义相同的功能。真的没有什么可补充的。
除了:
{}
放在if
,for
和while
的块周围,即使它们只是一行。就个人而言,如果块为空,我甚至会添加它们,添加// EMPTY
注释,以明确表示空虚不是由于简单的输入错误造成的。然后是调试101:
你可能已经基本上切掉了一切,最终得到了:
int main()
{
return 0;
}
int main()
{
return 0;
}
嗯......似乎是什么问题?也许我重新定义了&#39; main()&#39;? ; - )