1. ホーム
  2. c++

[解決済み] コンパイラは "Error: stray 'in program" と文句を言う。

2022-02-14 21:42:59

質問

以下の機能を実装してほしい。

void calc ( double* a, double* b, int r, int c, double (*f) (double) )

パラメータ a, r, c, f は入力、b は出力である。「a "と "b "は2次元の行列であり、"r "の行と "c "の列を持つ。 列となります。「f は関数ポインタであり,以下の型の任意の関数を指すことができる.

double function‐name ( double x ) {
    …
}

機能 calc は, 行列aの各要素, すなわち, aijを行列bの bij=f(aij)に変換します.


を実装しています。 calc 関数を以下のように実装し、プログラムに組み込んでテストしています。

#include <stdlib.h>
#include <iostream>

using namespace std;

double f1(double x){
    return x * 1.7;
}

void calc (double* a, double* b, int r, int c, double (*f) (double))
{
    double input;
    double output;

    for(int i=0; i<r*c; i++)
    {
        input = a[i];
        output = (*f)(input);
        b[i] = output;
    }
}

int main()
{
    // Input array:
    int r=3;
    int c=4;
    double* a = new double[r*c];
    double* b = new double[r*c];

    // Fill "a" with test data
    //...

    for (int i=0; i<r*c; i++)
    {
        a[i] = i;
    }

    // Transform  a to b
    calc(a, b, r, c, f1);

    // Print to test if the results are OK
    //...

    for (int i=0; i<r*c; i++)
    {
        b[i] = i;
    }

    return 0;
}

問題は、コンパイルができないことです。これは、以下の出力です。 DevC++ をクリックすると コンパイルと実行 ボタンをクリックします。

どうしたんですか?

より効率的な実装にするため、コメントをいただけると幸いです。

解決方法は?

ソースに不正な文字が含まれているようです。どのような文字かわかりません \240 のはずですが、どうやら10行目の冒頭あたりにあるようです。

投稿されたコードでは、この問題は存在しません。 ライブオンコリル