【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.22067

例題と解答例が似ているのにエラーがでる
投稿者---あきき(2005/07/24 00:52:26)


当サイトの解答15−3解答例と自分で解いたプログラムの違いが分からず、コーディングも似ているのになぜ自分の解答だけエラーが出るのか分かりません。どなたか教えてください。

/*生徒情報を構造体として作成し、それぞれの科目の平均点を構造体のポインタを用いて求めなさい。*/
#include   <stdio.h>

#define  NINZU  5
#define  KAMOKU   4

struct  seiseki {
    int   bango;
    int   kamoku[KAMOKU];
};

int main( void )
{
    struct  seiseki  myclass[NINZU+1]={
            { 1001, 85, 74, 63, 90 },
            { 1002, 78, 65, 70, 62 },
            { 1003, 89, 92, 88, 76 },
            { 1004, 32, 48, 66, 25 },
            { 1005, 92, 76, 81, 98 },
            {   -1,  0,  0,  0,  0 }
    };
    char  *kname[] = {"国語","数学","理科","社会"};
    struct seiseki  *my_p;
    my_p = myclass;
    double  ave;
    int   i , j;

    for ( j=0;j<KAMOKU;j++ ) {
        ave = 0.0;
        for ( i=0;i < (my_p+i)->bango != -1;i++) {
            ave += (my_p+i)->kamoku[j];
        }
        ave /= KAMOKU;
        printf(" %s 平均 = %6.2f\n",kname[j],ave);
        
    }

    return  0;
}


コンパイルしています...
struct01.c
\C\struct01.c(25) : error C2143: 構文エラー : ';' が '型' の前にありません。
\C\struct01.c(26) : error C2143: 構文エラー : ';' が '型' の前にありません。
\C\struct01.c(28) : error C2065: 'j' : 定義されていない識別子です。
\C\struct01.c(29) : error C2065: 'ave' : 定義されていない識別子です。
\C\struct01.c(29) : warning C4244: '=' : 'double' から 'int' に変換しました。データが失われているかもしれません。
\C\struct01.c(30) : error C2065: 'i' : 定義されていない識別子です。

C - エラー 5、警告 1


---------------------- 終了 ----------------------

ビルド : 0 正常終了、1 失敗、0 スキップ




この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:例題と解答例が似ているのにエラーがでる 22069 まきじ 2005/07/24 01:02:34
<子記事> Re:例題と解答例が似ているのにエラーがでる 22071 neko 2005/07/24 01:08:50


No.22069

Re:例題と解答例が似ているのにエラーがでる
投稿者---まきじ(2005/07/24 01:02:34)


>char *kname[] = {"国語","数学","理科","社会"};
>struct seiseki *my_p;
>my_p = myclass; <--- ここ
>double ave;
>int i , j;

C言語では、変数の宣言はブロックの先頭に記述しなければなりません。


この投稿にコメントする

削除パスワード

No.22077

Re:例題と解答例が似ているのにエラーがでる
投稿者---あきき(2005/07/24 02:01:33)


宣言箇所に原因があるとは気がつきませんでした。指摘された箇所を訂正したのち、下記のaveの行でエラーが発生して強制終了しました。条件の設定が気になるのですが。

        for ( i=0;i < (my_p+i)->bango != -1;i++) {
            ave += (my_p+i)->kamoku[j];
        }




この投稿にコメントする

削除パスワード

No.22080

Re:例題と解答例が似ているのにエラーがでる
投稿者---まきじ(2005/07/24 11:42:06)


>for ( i=0;i < (my_p+i)->bango != -1;i++) {

i < は不要だと思います。


この投稿にコメントする

削除パスワード

No.22095

Re:例題と解答例が似ているのにエラーがでる
投稿者---あきき(2005/07/25 08:41:31)


まきじさん、有難うございました。無事解決できました。


この投稿にコメントする

削除パスワード

No.22071

Re:例題と解答例が似ているのにエラーがでる
投稿者---neko(2005/07/24 01:08:50)


こんばんは。
私も同じ問題を初心者ながら解いて回答待ち状態です。

double ave;
int i , j;
my_p = myclass;

上記のように順番を変更すればどうなりますか?
エラー内容がおっしゃる通りに表示されないので
どこが原因なのか確認できないでいます。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧