・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点満点だとしたら何点くらいでしょうか?
これらのプログラムはあっていますか?
Re:これらのプログラムはあっていますか?
まず、間違い箇所を言いますと・・
一つ目
・イゲタ(最初に書くシャープ記号)が無い
・sumが初期化されていない
・ifの比較は=ではなく、==
・i/2ではなくi%2
二つ目
・イゲタ(最初に書くシャープ記号)が無い
・intの宣言がおかしい(変数名がかいてない)
・averageが宣言されていない
・s配列が用意されていない。
・s配列に数値が入っていない。
・average1が用意されていない
・int型に平均を入れても、小数点が入らない(これは仕様による)
・カウンタ変数iが用意されていない
・for文の計算式の後にセミコロンが無い
と言う事で、残念ながらコンパイル通りませんし、
厳しく採点するなら、部分点があったとしてもあまり期待できないかもしれません。
自分のPCにコンパイラは入ってますか?
今そのプログラムを自分でコンパイルしてみませんか?
もし出来る事なら、間違いの無いプログラムを完成させて見ましょう!
後私が採点するならプレタグで投稿されてないので1点減点。
・・というのは冗談で、コードを投稿するときはタグを使って下さい。
詳しくは利用規約をご覧下さい。
一つ目
・イゲタ(最初に書くシャープ記号)が無い
・sumが初期化されていない
・ifの比較は=ではなく、==
・i/2ではなくi%2
二つ目
・イゲタ(最初に書くシャープ記号)が無い
・intの宣言がおかしい(変数名がかいてない)
・averageが宣言されていない
・s配列が用意されていない。
・s配列に数値が入っていない。
・average1が用意されていない
・int型に平均を入れても、小数点が入らない(これは仕様による)
・カウンタ変数iが用意されていない
・for文の計算式の後にセミコロンが無い
と言う事で、残念ながらコンパイル通りませんし、
厳しく採点するなら、部分点があったとしてもあまり期待できないかもしれません。
自分のPCにコンパイラは入ってますか?
今そのプログラムを自分でコンパイルしてみませんか?
もし出来る事なら、間違いの無いプログラムを完成させて見ましょう!
後私が採点するならプレタグで投稿されてないので1点減点。
・・というのは冗談で、コードを投稿するときはタグを使って下さい。
詳しくは利用規約をご覧下さい。
Re:これらのプログラムはあっていますか?
配列の要素数分をループさせて偶数のみの合計を返すプログラムをつくってみました。
どうでしょうか?
引数にポインタを指定しているのはint型の配列の先頭番号を渡すためです。
どうでしょうか?
引数にポインタを指定しているのは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; }
Re:これらのプログラムはあっていますか?
1つ目のプログラムなんですけど、偶数の値だけを足していくのであれば
iの値を2ずつインクリメントしていくのでもいいのでは?
たとえばこんな感じに
if(i%2 == 0)
という条件は必要なくなりますよ。
あとは管理人さんのおっしゃる通り、初期化はちゃんとしておきましょう。
でないと実行結果がおかしくなりますよ。
私も同じ意見で、採点結果はかなり厳しいかと思います。
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)
という条件は必要なくなりますよ。
あとは管理人さんのおっしゃる通り、初期化はちゃんとしておきましょう。
でないと実行結果がおかしくなりますよ。
私も同じ意見で、採点結果はかなり厳しいかと思います。