[英]debug horner's rule programme
我是初學者,完全糊塗了。 我的c ++代碼中出現兩個錯誤:
程序:32:5:錯誤:重新定義'main'程序:3:6:注意:'main'的先前定義在這里
給出一個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)第1次迭代。
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 <= 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);
}
}
錯誤消息似乎已經很好地解決了問題。 你有兩個主要功能。 你只能有一個,所以選擇一個並刪除另一個。
Program:32:5: error: redefinition of 'main'
在“程序”第32行第5列中,標識符main
在同一范圍內第二次定義。
Program:3:6: note: previous definition of 'main' was here
第一個定義是在“程序”第3行第6列。
你在這。 您不能兩次定義相同的功能。 真的沒有什么可補充的。
除了:
{}
放在if
, for
和while
的塊周圍,即使它們只是一行。 就個人而言,我甚至在塊為空時添加它們,添加// EMPTY
注釋以明確表示空虛不是由於簡單的輸入錯誤。 然后是調試101:
你可能已經基本上切掉了所有東西並最終得到:
int main()
{
return 0;
}
int main()
{
return 0;
}
嗯......似乎是什么問題? 也許我重新定義'main()'? ;-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.