ページ 11

学校の宿題です

Posted: 2008年10月22日(水) 20:25
by 400828
画面から入力した10この数の合計・平均を表示しなさい。ただし、合計・平均を求める処理は関数に定義しなさい。
#include <stdio.h>
int* calc(int*);
void main()
{
int w[10],result[2];
int i;
for(i=0;i<10;i++){
scanf("%d",&w);
}
result=calc(w);xs
printf("合計:%d\n",result[0]);
printf("平均: %d\n",result[1]);
}
int* calc(int w[/url]){
int sum,avg,i,result[2];
sum=0;
for(i=0;i<10;i++){
sum = sum + w;
}
result[0]=sum;
result[1]=sum/10;
return result;
}

Re:学校の宿題です

Posted: 2008年10月22日(水) 20:27
by 400828
関数についてぜんぜんわからない、教えてください。

Re:学校の宿題です

Posted: 2008年10月22日(水) 20:47
by 管理人
次からタグを使って字下げして下さいね。
詳しくは規約をご覧下さい。

アドレスを返したいのならポインタで受け取らないといけません。
int *p;
などを宣言し、pに入れてあげて下さい。
また、返しているのはローカル変数のアドレスで不適切です。

普通に配列を渡してやればいいのではないでしょうか?

以下にサンプルを書いておきます。この意味が理解できればこの課題も出来ると思います。
#include <stdio.h> 

void calc(int result[2], int input_dat[10]){
	result[0]=input_dat[0];
	result[1]=input_dat[9];
}	

int main(void){ 
	int result[2],input_dat[10]={0,1,2,3,4,5,6,7,8,9};
	calc(result,input_dat);
	printf("%d,%d\n",result[0],result[1]);
	return 0; 
}
 
 

Re:学校の宿題です

Posted: 2008年10月23日(木) 09:22
by Haru
もし管理人さんに提示して頂いた、サンプルが今は理解できないのであれば、

http://journal.mycom.co.jp/articles/200 ... index.html

ここを読んで見てください。