前提・実現したいこと
C言語(visual studio)で簡易的な単位の合計とGPAを出力するプログラムを作成したいです。
単位の合計を計算する関数とGPAを計算する関数を作成し、mainにtotal(単位の合計)とave(GPA)を渡したいのですが現状ではmainにこの2つの関数を入れると以降の動作が行われなくなります。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
1>C:\Users\2123119\Downloads\あああああ\ああああああ2\DUT13-06 70\DUT13-06 70.c(30,20): warning C4047: '関数': 間接参照のレベルが 'int **' と 'int *' で異なっています。
1>C:\Users\2123119\Downloads\あああああ\ああああああ2\DUT13-06 70\DUT13-06 70.c(30,14): warning C4024: 'Tocre': の型が 2 の仮引数および実引数と異なります。
1>C:\Users\2123119\Downloads\あああああ\ああああああ2\DUT13-06 70\DUT13-06 70.c(31,18): warning C4047: '関数': 間接参照のレベルが 'double **' と 'double *' で異なっています。
1>C:\Users\2123119\Downloads\あああああ\ああああああ2\DUT13-06 70\DUT13-06 70.c(31,14): warning C4024: 'Toeva': の型が 2 の仮引数および実引数と異なります。
エラーメッセージ
該当のソースコード
ソースコード #include <stdio.h> typedef struct Grades { char name[81]; char number; int Detocr;//申告総単位数 int credit[5]; double evaS; double evaA; double evaB; double evaC; double eva0;//単位を取得できない評価 double evaN; }Gr; int enterdata(Gr data[5]); int Tocre(Gr data[], int *total[]); double Toeva(Gr data[], double *ave[]); int main() { Gr data[5]; int loop, total; double ave; enterdata(data); Tocre(data, &total); Toeva(data, &ave); for (loop = 0; loop < 5; loop++) { printf("~学籍番号:%d 名前:%sさんの成績~\n", data[loop].number ,data[loop].name); printf("申告総単位数は%dでした\n", data[loop].Detocr); printf("今期に取得することができた単位数は%d単位でした\n", total[loop]); printf("今期のGPAは%lfでした\n", ave[loop]); } return 0; } int enterdata( Gr data[5]) { int loop, loop2; for (loop = 0; loop < 1; loop++) { printf("%d人目", loop + 1); printf("名前:"); scanf("%s", &data[loop].name); printf("学籍番号:"); scanf("%hhd", &data[loop].number); printf("申告総単位数:"); scanf("%d", &data[loop].Detocr); printf("それぞれの単位数の総数を入力してください\n"); for (loop2 = 0; loop2 < 5; loop2++) { if (loop2 == 4) { printf("単位%d:", loop2+2); scanf("%d", &data[loop].credit[loop2]); } else { printf("単位%d:", loop2 + 1); scanf("%d", &data[loop].credit[loop2]); } } printf("評価基準のアルファベットがそれぞれいくつあるかを入力してください\n"); printf("評価S:"); scanf("%lf", &data[loop].evaS); printf("評価A:"); scanf("%lf", &data[loop].evaA); printf("評価B:"); scanf("%lf", &data[loop].evaB); printf("評価C:"); scanf("%lf", &data[loop].evaC); printf("評価0:"); scanf("%lf", &data[loop].eva0); printf("評価N:"); scanf("%lf", &data[loop].evaN); } return 0; } int Tocre(Gr data[], int *total[]){ int loop0, loop, loop2; for (loop0 = 0; loop0 < 5; loop0++) { *total[loop0] = 0; } for (loop = 0; loop < 1; loop++) { for (loop2 = 0; loop2 < 5; loop2++) { *total[loop] = *total[loop] + data[loop].credit[loop2]; } } return 0; } double Toeva(Gr data[], double *ave[]) { int loop; for (loop = 0; loop < 5; loop++) { *ave[loop] =*ave[loop] + (data[loop].evaS * 4) + (data[loop].evaA * 3) + (data[loop].evaB * 2) + (data[loop].evaC * 1); *ave[loop] = *ave[loop] / data[loop].Detocr; } return 0; }
試したこと
どこで止まるかの確認。ネット検索。
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。