警告とエラー

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
メル

警告とエラー

#1

投稿記事 by メル » 9年前

下記の100メートル走の平均と呼びだしのプログラムを課題でやっていたのですがコンパイルでエラーと警告unknown escape sequenceが出てきて実行できません。間違えているところがどこなのかどうしてもわからないので力を貸していただけたらと思います。

#include <stdio.h>

int main(void)
{
//a=生徒の数、sum=合計、ave=平均、
float a[20];
int sum=0, i, j;
for(i=1; i<=20; i++)
{
printf("順番にタイムを記録してください\n");
scanf("%d",&a);
sum=sum+a;
}
printf("20人の平均は%5.1fです\n",(double)sum/20);
while(j!=0){
printf("1~20の順番で表示したい記録を入力してください(0で終了)\n"); //16行目でエラーが起きているみたいです
scanf("%d",&j);
printf("秒です\n",a[j]);
}
return 0;
}

かずま

Re: 警告とエラー

#2

投稿記事 by かずま » 9年前

メル さんが書きました:下記の100メートル走の平均と呼びだしのプログラムを課題でやっていたのですがコンパイルでエラーと警告unknown escape sequenceが出てきて実行できません。間違えているところがどこなのかどうしてもわからないので力を貸していただけたらと思います。
16行目の ; の直後の全角スペースを削除し、
gcc --input-charset=cp932 ファイル名.c でコンパイルすると解決しませんか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: 警告とエラー

#3

投稿記事 by みけCAT » 9年前

ソースコードを提示する際は、BBCodeを有効にした(無効にしない)状態でcodeタグで囲んでいただけると、見やすくてありがたいです。
メル さんが書きました:間違えているところがどこなのかどうしてもわからないので力を貸していただけたらと思います。
  • 7行目: せっかくfloat型の値を読み込んでいるのに、足す時に切り捨ててしまうのは不自然です。sumの型をdoubleまたはfloatにした方がいいかもしれません。
  • 8行目: ループの範囲が不適切であり、11行目および12行目で確保された領域の外にアクセスしてしまいます。for(i=0; i<20; i++)とするべきでしょう。
  • 11行目: float型の値をscanfで読み込むのに%dは使えません。%fを使ってください。
  • 15行目: 未初期化で不定の値を持つ変数jが使用されています。宣言時またはここの直前に1など適当な値に初期化するべきでしょう。
  • 18行目: 20を入力された時、仕様内にも関わらず確保された領域の外にアクセスしてしまいます。また、書式に対しデータが多く、評価された後無視されるので問題はありませんが不自然です。printf("%f秒です\n",a[j - 1]);とするべきでしょう。
かずま さんが書きました:gcc --input-charset=cp932 ファイル名.c でコンパイルすると解決しませんか?
--fexec-charset=cp932も指定した方がいいかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

メル

Re: 警告とエラー

#4

投稿記事 by メル » 9年前

表示という言葉が問題で表¥示にしたら解決しました。

閉鎖

“C言語何でも質問掲示板” へ戻る