ページ 1 / 1
C言語のプログラムについて
Posted: 2013年6月25日(火) 22:16
by 獅音
C言語の勉強をしています。
ですが、プログラムや勉強法がいまいち分からなくて、プログラムの作成をしたいのですが、
出来なくて困っています。
今しているのは、一次元配列を用いたプログラムを作れるようにと、学校で言われたのですが、
どうゆう書き方なのかが分かりません。
申し訳ないのですが、プログラムの作成例を載せていただけないでしょうか?
よろしくお願いします。
●一次元配列を用いたプログラム
一次元配列を用いて、プログラム内に用意した1年分の気温データについて、平均気温を算出するプログラムを作りなさい。
平均気温の表示は、小数点以下2桁とする。
なお、配列の変数名はondoとして、以下の[各月の気温データ]を用意すること。
他の変数は、カウンタi、温度の合計(平均気温)はmeanとすること。
(用いる変数は、ondo[],i,meanだけで間に合う)
[各月の気温データ]
1月:12.1 2月:12.2 3月:15.2 4月:20.3 5月:24.3 6月:28.1 7月:30.6 8月:32.1 9月:27.9 10月:21.3 11月:17.0 12月:13.1
Re: C言語のプログラムについて
Posted: 2013年6月25日(火) 22:31
by non
Re: C言語のプログラムについて
Posted: 2013年6月25日(火) 22:40
by softya(ソフト屋)
コードはなく勉強法・考え方が知りたければ、ここで質問してくださいね。
ここでは課題の丸投げ質問はご遠慮頂いております。
http://dixq.net/board/board.html
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 00:06
by プログラムA
1. 自分で組んでみる.できなければ,既にどこかに答え(ソース)があるので,それをそのまま組んでみる.
2. それの中身を理解,もしそれもできなければ,理解出来ない箇所をネットや本で調べる.
3. それでも分からなければ,分からない箇所を含む,別のプログラムを組む.
以後解決するまで,これらを繰り返してください.
1つ1つ疑問を突き詰めていけば,理解できます.
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 20:52
by シオン
#include<stdio.h>
int main(void)
{
int i;
double ondo[12]={12.1,12.2,15.2,20.3,24.3,28.1,30.6,32.1,27.9,21.3,17.0,13.1};
for(i=1;i<13;i++)
{
printf("%d月:%4.1f\n",i,ondo[i-1]);
}
return 0;
}
調べて、このプログラムをubuntuで行ったら、
c:9: error: stray ‘\357’ in program
:9: error: stray ‘\275’ in program
:9: error: stray ‘\235’ in program
:11: error: expected declaration or statement at end of input
と表示されました。
どうすればこのエラーを解決できますか?
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 21:02
by non
見た目ではまずわかりませんでした。
やむを、得ず、コピペしてコンパイルしたらすぐわかりましたが。
全角文字があります。
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 21:09
by 獅音
全角は直したので、実行したんですが、4月ごとに区切る必要があるのと、
温度の合計(平均気温)の変数meanを入れていなかったので、
表示されませんでした。
どこに入れればいいでしょうか?
質問が多くてすみません><
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 21:20
by KORYUOH
合計でしたら配列の中身をすべて足し合わせればいいですよね?
ヒント
今の合計=今までの合計+今の気温
平均を出すにはそれを割ってあげれば・・・
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 21:42
by 獅音
mean =ondo[12]+今の気温(?)/2ですよね?
あとは、printf("平均気温:mean =ondo[12]+今の気温(?)/2¥n");
でしょうか?^^;
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 22:09
by 獅音
ここからがどうしても分からないので、スミマセンが答えていただけないでしょうか?
#include<stdio.h>
int main(void)
{
int i;
double ondo[12]={12.1,12.2,15.2,20.3,24.3,28.1,30.6,32.1,27.9,21.3,17.0,13.1};
for(i=1;i<13;i++)
{
printf("%d月:%4.1f\n",i,ondo[i-1]);
}
return 0;
}
①4月ごとに区切る方法
②平均気温の入力
③meanをどこに入れるか
教えてもらった後で、しっかり復習・理解するので、申し訳ありませんが
教えてもらえないでしょうか。
よろしくお願いします。
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 22:13
by box
獅音 さんが書きました:mean =ondo[12]+今の気温(?)/2ですよね?
正しくありません、と申しておきます。
提示されている12個の気温のデータから平均値を『プログラムではなく手で』計算するとき、
質問者さんはどのような手順を踏まれますか?
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 22:14
by softya(ソフト屋)
基本的にヒントでお答えします。
合計を求めるにはforを使います。
①4ヶ月毎に区切るなら4で割った余りが3で区切れば良いと思います。 【追記】これ最初の条件に書いてないけど?
②合計から平均します。
③meanを変数宣言してください。
>教えてもらった後で、しっかり復習・理解するので、申し訳ありませんが教えてもらえないでしょうか。
変数宣言もわからないとすると理解するのは困難だと思いますので、今勉強しましょう。
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 22:17
by 獅音
12月分の気温を合計して、÷12をします。
どうプログラムで表すか分からないんです・・・。><
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 22:25
by softya(ソフト屋)
獅音 さんが書きました:12月分の気温を合計して、÷12をします。
どうプログラムで表すか分からないんです・・・。><
for文や配列の使い方が分からないと言うことでしょうか?
「配列(array)」
http://www.cc.kyoto-su.ac.jp/~yamada/pr ... array.html
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 22:48
by non
一番最初に、平均を求めるサンプルプログラムを紹介したのに、見てないのですか?
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 23:11
by 獅音
すみません。
URLのを参考にして、作成した実行結果が
12月:13.1
平均気温 = 0.000000
になってしまいます。
どこかを変えるのでしょうか?
#include<stdio.h>
int main(void)
{
int i;
double ondo[12]={12.1,12.2,15.2,20.3,24.3,28.1,30.6,32.1,27.9,21.3,17.0,13.1};
double mean;
for(i=1;i<12;i++)
mean= (double)ondo[12]/i ,mean;
{
printf("%d月:%4.1f\n",i,ondo[i-1]);
printf("平均気温 = %f\n",mean);
}
return 0;
}
Re: C言語のプログラムについて
Posted: 2013年6月26日(水) 23:16
by softya(ソフト屋)
> mean= (double)ondo[12]/i ,mean;
・この式のカンマ演算子はなんのために使っていますか?
・あと平均の求め方を理解していますか? 日本語で書いてみてください。ondo[12]/iって、その日本語と同じですか?
・ondoはdoubleなのでキャストがいりません。キャストの使い所が違います。
・あとfor文の直後に入っているので、for分の効果範囲がmean= (double)ondo[12]/i ,mean;までと成っています。これは間違いです。
【追記】
・for文のあとは必ず{}にしたほうが初心者は安全です。
・合計を求めるループと表示するループは分けてください。
Re: C言語のプログラムについて
Posted: 2013年6月27日(木) 00:28
by usao
ここまでのやりとりを見た感じだと
掲示板でやり取りするよりも「C言語 入門」みたいな類の本なりWebサイトなりを
とりあえず2~3時間程度見てきたほうが早いように見受けます.
>12月分の気温を合計して、÷12をします。
>どうプログラムで表すか分からないんです・・・。><
とりあえず素直に書いたらいいんじゃないですか?
mean = ( ondo[0]+ondo[1]+ondo[2]+...+ondo[11] ) / 12.0;
#失礼な物言いになってしまうかもしれませんが,
Cでの四則演算の書き方も把握できていない状態なのであれば
「問題が出されたけどできません」とか人に頼る前に最低限やるべきことがあると思います.
Re: C言語のプログラムについて
Posted: 2013年6月28日(金) 14:13
by hatuo
#include<stdio.h>
//#include<stdlib.h>
int main(void)
{
int i;
double ondo[12]={12.1,12.2,15.2,20.3,24.3,28.1,30.6,32.1,27.9,21.3,17.0,13.1};
double mean=0;
for(i=0;i<12;i++){
mean += ondo;
printf("%d月:%4.1f\n",i+1,ondo);
}
printf("平均気温 = %4.1f\n",mean/12);
return 0;
}
ほい、がんばれよ
配列は[0]から入ることと、mean=0;したりすればいいとおもう
Re: C言語のプログラムについて
Posted: 2013年6月28日(金) 15:40
by usao
>printf("平均気温 = %4.1f\n",mean/12);
些細なことですが
>平均気温の表示は、小数点以下2桁とする。
という指定があるようです.
Re: C言語のプログラムについて
Posted: 2013年7月10日(水) 22:39
by 獅音
長期放置してしまい、大変申し訳ありませんでした。
一応、訂正して、出力ができたので、載せておきます。
コード:
#include<stdio.h>
int main(void)
{
int i;
double ondo[12]={12.1,12.2,15.2,20.3,24.3,28.1,30.6,32.1,27.9,21.3,17.0,13.1};
for(i=1;i<13;i++)
{
printf("%d月:%4.1f\n",i,ondo[i-1]);
}
return 0;
}
ご迷惑をおかけして、すみませんでした。
Re: C言語のプログラムについて
Posted: 2013年7月10日(水) 22:42
by softya(ソフト屋)
これ、平均気温が無いんでソースが違うのでは?