scanfを使って入力した4つの整数の平均値を求めたいです。

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

scanfを使って入力した4つの整数の平均値を求めたいです。

#1

投稿記事 by happiness » 14年前

最近プログラミングを始めた初心者です。
よろしくお願いします。

先日大学で以下のような課題が出されました。
「scanfを用いて入力した4つの整数の平均値を求めるプログラムを書いてください。」

なので、学校で習ったことネットで調べたサンプルコードを参考にして以下のようなプログラムコードを作りました。

コード:

#include <stdio.h>
int main(void);
{
	int a,b,c,d;
	
	printf("a=");
	scanf("%d",&a);
	printf("a=%d\n",a);
	
	printf("b=");
	scanf("%d",&b);
	printf("b=%d\n",b);
	
	printf("c=");
	scanf("%d",&c);
	printf("c=%d\n",c);
	
	printf("d=");
	scanf("%d",&d);
	printf("d=%d\n",d);
		
	printf("平均値は%d\n",(a+b+c+d)/4);
	
	return (0);
}
コンパイルしてみたのですが、失敗してしまいました。
どこを間違えているのか指摘していただけないでしょうか?
(なるべく簡単で基本的な言語で修正してほしいです。)
できれば間違いの理由も教えてほしいです。


開発環境は以下のようになっております。
OS : windows 7 Ultimate 
コンパイラ:Borland C++ Compiler 5.5
エディタ : bcpad

プログラミング自体が初心者でC言語も学校では授業を4回くらい受けただけです。
前回の授業ではループ(for文)のやり方と変数について習いました。

お時間のあるときでいいのでよろしくお願いします。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: scanfを使って入力した4つの整数の平均値を求めたいです。

#2

投稿記事 by softya(ソフト屋) » 14年前

何をどう失敗したか説明してもらえますか?
問題点の把握もプログラミングでは重要なことですので、問題点を言葉で説明できることは必要なことなのです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

happiness

Re: scanfを使って入力した4つの整数の平均値を求めたいです。

#3

投稿記事 by happiness » 14年前

softya(ソフト屋) さん、返信ありがとうございます。
失敗したというのはコンパイルに失敗して黒いウィンドウが出てこなかったということです。
とりあえず流れを説明させていただきます。

プログラム作る
   ↓
コンパイル実行ボタンを押す
   ↓
以下のエラーメッセージがでてくる。
「コンパイルに失敗しました
 ファイル"C\Users\happiness\Downloads\Documents\C\practice41.exe"は存在しません」
(このメッセージはbcpadでコードのどこかに間違いがあるといつも出てくるメッセージです。間違いを訂正するとでてこなくなります。)
   ↓
黒いウィンドウが出てこない。

という状況です。

本当ならコンパイルを実行したあと黒いウィンドウが出てきてそこで数値を4つ入力し、平均がでるはずなのです。

問題点についてですが、自分は作ったコードのどこかが間違えているのが原因で失敗したのだと思います。

お返事お待ちしております。

box
記事: 2002
登録日時: 15年前

Re: scanfを使って入力した4つの整数の平均値を求めたいです。

#4

投稿記事 by box » 14年前

ソースコードの何行目でどういうエラーが出ているか、
BCPADは教えてくれないのでしょうか。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: scanfを使って入力した4つの整数の平均値を求めたいです。

#5

投稿記事 by softya(ソフト屋) » 14年前

bcpadには詳しくないのでがコンパイルエラーメッセージは確認できないのでしょうか?
コンパイルエラーの修正も学習の一つですよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

happiness

Re: scanfを使って入力した4つの整数の平均値を求めたいです。

#6

投稿記事 by happiness » 14年前

よく見たらエラーメッセージが出ていました。
不注意ですみません・・・

■C:\Users\happiness\Downloads\Documents\C> bcc32 practice41.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
practice41.cpp:
Error E2040 practice41.cpp 3: Declaration terminated incorrectly
*** 1 errors in Compile ***

エラーは3行目にあるようですが「Declaration terminated incorrectly」とはどういうことなのでしょうか?
調べてみたら宣言が違うという意味らしいのですが、セミコロンもちゃんとついてるので間違えてないと思うのですが・・・

返信お待ちしております。

box
記事: 2002
登録日時: 15年前

Re: scanfを使って入力した4つの整数の平均値を求めたいです。

#7

投稿記事 by box » 14年前

happiness さんが書きました: セミコロンもちゃんとついてるので間違えてないと思うのですが・・・
ていうか、よけいなところにセミコロンが付いてますよ、という意味ではないのでしょうか。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: scanfを使って入力した4つの整数の平均値を求めたいです。

#8

投稿記事 by softya(ソフト屋) » 14年前

セミコロンは命令文の終わりを意味します。
int main(void);
だと、そこで命令が完結してしまうので後ろのブロック{}は無関係なものとなってしまいエラーとなります。

◯ 関数の構文。
戻り値の型 関数名(引数 or void) { 命令;・・・ }
◯ 関数のプロトタイプの構文。
戻り値の型 関数名(引数 or void);

と言うことで今回の場合はプロトタイプと見なされた事になりますので、後ろの{}は無関係で文法上エラーです。

コード:

int main(void)
{
	命令;
}
とすればちゃんとしたmain関数の定義となりますので注意して下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

happiness

Re: scanfを使って入力した4つの整数の平均値を求めたいです。

#9

投稿記事 by happiness » 14年前

softya(ソフト屋) さん、box さん、返信ありがとうございます。
言われたとおりに

コード:

int main(void)
{
    命令;
} 
に直してみたらちゃんとコンパイルできました。
こんな初歩的な質問に答えてくれてありがとうございました。
これからはコンパイルエラーの見方も勉強します。

閉鎖

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