掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

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

掲示板2

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

No.26773

プログラミングのエラーに関する質問です!
投稿者---かげろう(2006/05/07 18:17:01)


以下のプログラムで、英語の単語テストのようなものを作ろうと思いましたが、
上手くいきません。(テスト回数を指定して、表示された日本語の英単語を入力していく、といった趣旨で作りました)
下のプログラムでは、途中の「上の英訳を入力」の部分まではスムーズに行くのですが、そこを入力し、エンターを押すと、その先がエラーで
表示されず、強制終了になってしまいます。また、エラーメッセージが三回も出てきます。
どなたか、わかる方がいましたら、ぜひ指摘をしていただけたらうれしいです。お願いします。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>


typedef struct mondai{  //構造体の宣言

  char *toi;
  char *moto;
}mondai_t;


int main(void){
  int i,k,count;
  char *input;  //入力されたものを保持するための変数

  mondai_t date[]={ //とりあえず、二つのデータを入れる

    {"暑い","hot"},
    {"寒い","cold"},
    };
  printf("何回やりますか?");
  scanf("%d",&k); //何回繰り替えすかを指定

  
  srand(time(NULL));  //乱数の発生

  
  for(count=0;count<k;count++){ //指定された分だけ繰り返すためのFOR文

  
    i=rand()%2; //乱数を規定範囲の数字に変える(0と1)

    printf("%d\n",i); //一応1と0どちらになったか確認

  
  
    printf("%s の英訳は?↓\n",date[i].toi);  //乱数の示す構造体の日本語(暑いor寒い)を表示

    scanf("%s",input);  //上の英訳を入力

    
  
    if (strcmp(date[i].moto,input) == 0) {  //乱数の示す構造体の英訳(答え)と入力を比較

         printf("正解\n"); //あってるなら 正解 を表示

      } else {
         printf("Differ\n"); //間違っているなら DIFFERと表示

      }  
  
  }
  return 0;
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:プログラミングのエラーに関する質問です! 26774 RAPT 2006/05/07 18:56:13


No.26774

Re:プログラミングのエラーに関する質問です!
投稿者---RAPT(2006/05/07 18:56:13)


で、なぜ、その肝心な「エラーメッセージ」を掲載しないのでしょうか。

ざっと見た感じ、とどのつまり、アクセス違反でしょう。

> char *input;
> scanf("%s",input);
領域を確保していないところに書き込もうとしているから。

そのままうまく動いているように見えるかもしれないし、
いきなり、HDDのフォーマットが始まるかもしてないし、
アプリケーションが強制終了されて事なきを得るかもしれない。



この投稿にコメントする

削除パスワード

No.26775

Re:プログラミングのエラーに関する質問です!
投稿者---かげろう(2006/05/07 20:46:33)


さっそくお答えいただきありがとうございます!
エラーメッセージのほうですが、
「問題が発生したため、test.exe を終了します。 ご不便をおかけして申し訳ありません。エラーメッセージを送信します」としか出てこず、プログラムに関することには触れられていませんでした。


この投稿にコメントする

削除パスワード

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