これらのプログラムはあっていますか?

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

これらのプログラムはあっていますか?

#1

投稿記事 by もり » 16年前

・0,1,2,3,4の数の中で偶数の数だけの和を求めるプログラム。

include<stdio.h>
int main(void){
int i,sum;

for(i=0;i<=4;i++){
if(i/2=0){
sum=sum+i;
}
}
printf("%d",sum);
return(0);
}

・配列s[5]={0,1,2,3,4}とあってそれらの平均値を求めるプログラム。

include<stdio.h>
int main(void){
int
for(i=0;i<5;i++){
average=average+s
}
average1=average/5;
printf("平均=%d\n",average1);

return(0);
}

テストでこのような回答を書いたのですが50点満点だとしたら何点くらいでしょうか?

YuO

Re:これらのプログラムはあっていますか?

#2

投稿記事 by YuO » 16年前

どちらもコンパイルができないから0点かと。

Dixq (管理人)

Re:これらのプログラムはあっていますか?

#3

投稿記事 by Dixq (管理人) » 16年前

まず、間違い箇所を言いますと・・

一つ目
・イゲタ(最初に書くシャープ記号)が無い
・sumが初期化されていない
・ifの比較は=ではなく、==
・i/2ではなくi%2

二つ目
・イゲタ(最初に書くシャープ記号)が無い
・intの宣言がおかしい(変数名がかいてない)
・averageが宣言されていない
・s配列が用意されていない。
・s配列に数値が入っていない。
・average1が用意されていない
・int型に平均を入れても、小数点が入らない(これは仕様による)
・カウンタ変数iが用意されていない
・for文の計算式の後にセミコロンが無い


と言う事で、残念ながらコンパイル通りませんし、
厳しく採点するなら、部分点があったとしてもあまり期待できないかもしれません。

自分のPCにコンパイラは入ってますか?
今そのプログラムを自分でコンパイルしてみませんか?
もし出来る事なら、間違いの無いプログラムを完成させて見ましょう!

後私が採点するならプレタグで投稿されてないので1点減点。
・・というのは冗談で、コードを投稿するときはタグを使って下さい。
詳しくは利用規約をご覧下さい。

Naohiro19

Re:これらのプログラムはあっていますか?

#4

投稿記事 by Naohiro19 » 16年前

配列の要素数分をループさせて偶数のみの合計を返すプログラムをつくってみました。
どうでしょうか?
引数にポインタを指定しているのはint型の配列の先頭番号を渡すためです。
int EvenSum(int* num, int loop)
{
   int total = 0; //偶数合計格納用
   for(int i = 0; num < loop; i++){
          if((num / 2) == 0){
                  //偶数のみを合計
                  total += num;
          }
   }
   //戻り値として偶数の合計を返す
   return total;
}

s-rush

Re:これらのプログラムはあっていますか?

#5

投稿記事 by s-rush » 16年前

1つ目のプログラムなんですけど、偶数の値だけを足していくのであれば
iの値を2ずつインクリメントしていくのでもいいのでは?

たとえばこんな感じに
#include <stdio.h>

int main(void)
{
	int sum = 0;
	int i;

	for(i=0; i<=4; i+=2)
		sum = sum+i;

	printf("sum = %d\n", sum);
         return 0;
}
すると
if(i%2 == 0)
という条件は必要なくなりますよ。

あとは管理人さんのおっしゃる通り、初期化はちゃんとしておきましょう。
でないと実行結果がおかしくなりますよ。
私も同じ意見で、採点結果はかなり厳しいかと思います。

閉鎖

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