掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.23666

配列の個数と要素を関数に渡し、合計を計算して、main関数に戻して表示したいのですが・・・
投稿者---matamo(2005/10/17 12:27:06)


配列の個数と要素を関数に渡し、合計を計算して、main関数に戻して表示したいのですがうまくいきません。
とりあえず作ってみたのですが、

#include<stdio.h>
int hairetu(int x,int y);
main(){

int a[5]={1,2,3,4,5},x;
int na=sizeof(a)/sizeof(a[0]);

x=hairetu(a,na);

printf("配列の要素数は%dです。\n",x);
}
int hairetu(int a,int na){
int i=0,goukei=0;
while(*(a+i)!='\0'){
goukei+=*(a+i);
i++;

}
return goukei;
}
これでうまくいきません。どうしたらいいのでしょうか。
できれば関数がどういう風に動いているかも見たいのですがどなたか教えてください。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:配列の個数と要素を関数に渡し、合計を計算して、main関数に戻して表示したいのですが・・・ 23667 名前はまだない 2005/10/17 12:41:01


No.23667

Re:配列の個数と要素を関数に渡し、合計を計算して、main関数に戻して表示したいのですが・・・
投稿者---名前はまだない(2005/10/17 12:41:01)


惜しいですね。もう一息ですよ。
・コンパイル時に出るエラーを修正して、
("int x" では配列ではないことに注意)
・while()で判定している条件に合うように a[] の末尾を追加
(追加したときの要素数に注意)、または
要素数を渡しているのだから、それを使って判定するように変更
すれば完成ですよ。

あっともうひとつ、
>要素数は%dです
ではなくて、
>配列の要素の和は%dです
と表示する方が正確ですね。


この投稿にコメントする

削除パスワード

No.23668

Re:配列の個数と要素を関数に渡し、合計を計算して、main関数に戻して表示したいのですが・・・
投稿者---matamo(2005/10/17 12:48:57)


>while(*(a+i)!='\0'){
 goukei+=*(a+i);

ここのところがよくわからないのですが、

>ポインタでないものに * や -> が適用された
というエラーが出るのですが、どうしたらいいのでしょうか。


この投稿にコメントする

削除パスワード

No.23669

Re:配列の個数と要素を関数に渡し、合計を計算して、main関数に戻して表示したいのですが・・・
投稿者---Blue(2005/10/17 13:10:45)


>>ポインタでないものに * や -> が適用された
>というエラーが出るのですが、どうしたらいいのでしょうか。
すでに、名前はまだないさんから
> ("int x" では配列ではないことに注意)
という指摘があるとおり,
変数 a はポインタ型ではありません。
よって
*( a ) みたいなことはできませんので、エラーになります。

とりあえず
関数に,引数として配列を渡す方法を参考にしてみては。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧