必要に応じて、これは私のコード全体 (C++) です。Eclipse Kepler を使用しています。
//Tutorials from www.cplusplus.com/doc/tutorial combined
#include <iostream>
using namespace std;
//tutorial #1.1 Function with type -- Addition
int addition (int a, int b)
{
int r;
r=a+b;
return (r);
}
//tutorial #1.2 Function with type -- Subtraction
int subtraction (int a, int b){
int r;
r=a-b;
return (r);
}
//tutorial #1.3 Function with NO type
void printmessage (void)
{
cout << "It's good to be the king." << '\n';
}
//tutorial #2.1 Arguments passed by reference
void duplicate (int& a, int& b, int& c)
{
a*=2;
b*=2;
c*=2;
}
//tutorial #2.2 and 2.5 Arguments passed by value and Declaration of preferred inline function
inline void prevnext (int x, int& prev, int& next)
{
prev = x-1;
next = x+1;
}
//tutorial #2.3 Default values in parameters (functions)
int divide (int a, int b=2)
{
int r;
r=a/b;
return (r);
}
//tutorial #2.4.1 Overloaded functions -- int cannot handle decimals
int operate (int a, int b)
{
return (a*b);
}
//tutorial #2.4.2 Overloaded functions -- float is used with decimals
float operate (float a, float b)
{
return (a/b);
}
//tutorial #2.6 Recursivity -- factorial calculator
long factorial (long a)
{
if (a > 1)
return (a * factorial (a-1));
else
return (1);
}
//tutorial #2.7 Declaring function prototypes
void odd (int a); //declared
void even (int a); //declared
void odd (int a) //defined
{
if ((a%2)!=0) cout << "Number is odd.\n";
else even (a);
}
void even (int a) //defined
{
if ((a%2)==0) cout << "Number is even.\n";
else odd (a);
}
//tutorial #3.1 Initializing and accessing the values of an array
float billy [] = {16, 2, 77, 40, 12071};
float k, result=0;
int main ()
{
cout << "Name: My Name \n";
cout << "Homework: 1";
cout << endl;
cout << endl;
int x=8, y=1, z, aa;
float n=3.0,m=9.0;
long number;
z = addition (4,2);
aa = subtraction (6,3);
cout << "The sum is " << z << '\n';
cout << "The subtraction is " << aa << '\n';
cout << "The second subtraction is " << subtraction(x,y) << '\n';
z = addition (x,y) - 3;
cout << "The new sum is " << z << '\n';
printmessage();
duplicate (x,y,z);
cout << "x=" << x << ", y=" << y << ", z=" << z << '\n';
prevnext (x, y, z);
cout << "Previous=" << y << ", Next=" << z;
cout << endl;
cout << "Division = " << divide (14);
cout << endl;
cout << "Second Division = " << divide (10,8);
cout << endl;
cout << "Operate Multiply: " << operate(x,y);
cout << '\n';
cout << "Operate Divide: " << operate(n,m);
cout << endl;
cout << "Please type a number: ";
cin >> number;
cout << number << "! = " << factorial (number);
cout << endl;
int i;
do {
cout << "Type a number (type 0 to exit): ";
cin >> i;
odd (i);
} while (i!=0);
for ( k=0 ; k<5 ; k++ )
{
result += billy[k];
}
cout << result;
return 0;
}
これは、問題が発生しているメインで記述された私のコードの一部です。より具体的には、結果 += billy[k] 行がエラーをスローしています。
for ( k=0 ; k<5 ; k++ )
{
result += billy[k];
}
cout << result;
これは以下に対応します。
//tutorial #3.1 Initializing and accessing the values of an array
float billy [] = {16, 2, 77, 40, 12071};
float k, result=0;
このコードを修正するには助けが必要ですが、最も重要なことは、コードでこのエラーが発生した理由と、コードを改善する方法を知りたいことです (初歩的なレベルで、ここでは高度な概念を実装していないことは明らかです)。
編集 午後 11 時 10 分 int に戻すのを忘れていました。最初は int を持っていましたが、エラーが発生したため、float を試して違いがあるかどうかを確認しました。