質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.93%

エラーメッセージを解消したい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 196

mememe0331

score 14

前提・実現したいこと

1.構造体の要素をすべて表示する。
2.名前を入力して、一致する配列の要素を返す。
3.一致した名前のデータを表示する

この操作を行いたいです。

しかし、エラーメッセージを解決できなくて困っています。
・パラメータのリストの内容が正しくありません。
・関数': 'money [5]' から 'money' に変換できません。
など、エラーの意味を検索して調べたのですが、
直し方が分かりません。

■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

kadai12_3.c(13): error C2081: 'n': 仮パラメーター リスト内の名前が正しくありません。
kadai12_3.c(14): error C2081: 'n': 仮パラメーター リスト内の名前が正しくありません。
kadai12_3.c(14): error C2081: 'str': 仮パラメーター リスト内の名前が正しくありません。
kadai12_3.c(27): error C2440: '関数': 'money [5]' から 'money' に変換できません。
kadai12_3.c(27): warning C4024: 'printData': の型が 1 の仮引数および実引数と異なります。
kadai12_3.c(33): error C2440: '関数': 'money [5]' から 'money' に変換できません。
kadai12_3.c(33): warning C4024: 'searchPerson': の型が 1 の仮引数および実引数と異なります。
kadai12_3.c(33): warning C4047: '関数': 間接参照のレベルが 'int''char [100]' で異なっています。
kadai12_3.c(33): warning C4024: 'searchPerson': の型が 3 の仮引数および実引数と異なります。
kadai12_3.c(33): warning C4477: 'printf' : 書式文字列 '%s' には、型 'char *' の引数が必要ですが、可変個引数 1 は型 'money' です
kadai12_3.c(38): error C2081: 'n': 仮パラメーター リスト内の名前が正しくありません。
kadai12_3.c(42): error C2088: '[': struct に対して正しくありません。
kadai12_3.c(42): warning C4473: 'printf': 書式文字列として渡された引数が不足しています
kadai12_3.c(42): note: プレースホルダーとそのパラメーターには 1 の可変個引数が必要ですが、0  が指定されています。
kadai12_3.c(42): note: 不足している可変個引数 1 が書式文字列 '%s' に必要です
kadai12_3.c(46): error C2081: 'n': 仮パラメーター リスト内の名前が正しくありません。
kadai12_3.c(46): error C2081: 'str': 仮パラメーター リスト内の名前が正しくありません。
kadai12_3.c(50): error C2088: '[': struct に対して正しくありません。
kadai12_3.c(50): error C2143: 構文エラー: ';'']' の前にありません。

該当のソースコード

#include <stdio.h>

#define NAME_LEN 100

struct money{
    int ID;
    char name[NAME_LEN];
    char career[NAME_LEN];
    int year;
    int salary;
};

void printData(struct money Data,n);
int searchPerson(struct money Data,n,str);

int main(void)
{
    struct money Data[5]=
    {
    {127, "Noah", "Section_Chief",  21, 400000},
    {204, "Olivia", "Section_Chief",  15, 350000},
    {255, "Liam", "Supervisor", 12, 300000},
    {272, "Emma", "Staff", 10, 270000},
    {300, "Oliver", "Staff",  5, 240000}
    };

    printData(Data,5);

    char str[100];
    printf("入力:");
    scanf("%s",str);

    printf("%s",Data[searchPerson(Data,5,str)]);

    return 0;
}

void printData(struct money Data,n){
    int i;

    for(i=0;i<n;i++){
        printf("%s",Data[i]);
    }
}

int searchPerson(struct money Data,n,str){
    int i;

    for(i=0;i<n;i++){
        if(strcmp(Data[i],str)==0){]
            return i;
        } else {
            return -1;
        }
    }
}

試したこと

エラーメッセージの意味を検索して調べたのですが、
直し方が分かりません。

補足情報(FW/ツールのバージョンなど)

サクラエディタ、コマンドプロンプト VS for 2019

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

void printData(struct money Data,n){

引数nの型が書かれてません
#その他も同じ

   printf("%s",Data[searchPerson(Data,5,str)]);

searchPersonの第一引数はstruct moneyですが、struct moneyの配列が入ってます
これじゃダメです

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/23 17:31

    y_waiwai様、回答ありがとうございます。
    エラーが半分程になりました!
    助かりました。もう少し考えてみます。

    キャンセル

  • 2020/07/23 17:34

    エラーメッセージを読みましょう。
    英語だから読めないってことなら、google翻訳にかければたいていわかりますよ

    キャンセル

0

関数の仮引数は、型 変数名をカンマで区切って並べた物です。型が必須です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/24 11:48

    otn様、
    ご回答ありがとうございます!
    直したら、エラーが半分なくなりました。
    助かりました

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.93%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る