アリゴリズムの参照渡し

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

アリゴリズムの参照渡し

#1

投稿記事 by mossa » 16年前

Cプログラムのアリゴリズムに関する参照渡しのプログラムなのですが
foo(int a,int b,int *sum,int *prod)
{
*sum=a+b;
*prod=a*b;
}
のプログラムfoo()とfoo()を動かすmain()のサンプルを作成する
という問題なのですが、途中まで考えることができましたが
void main()[
intx=0; int y=0;
foo(2,5,?,?);  //xとyのアドレスを第3,4引数に渡すのをどうすればいいのか
printf("%d,%d\n",x,y) //ここのxとyが知りたい
}
ということです。
よろしくお願いします。

Blue

Re:アリゴリズムの参照渡し

#2

投稿記事 by Blue » 16年前

アドレス演算子「&」をつけてください。

hss12

Re:アリゴリズムの参照渡し

#3

投稿記事 by hss12 » 16年前

foo(2, 5, &x, &y);
で良いと思いますが、それ以外の場所で数か所ミスがあり動かないと思います。

BEMANI

Re:アリゴリズムの参照渡し

#4

投稿記事 by BEMANI » 16年前

>>mossaさん
コンパイル通らないので一応念のために・・・

foo(int a,int b,int *sum,int *prod)
と書いてありますが、戻り値の型が指定されていません。
見た感じ戻り値は必要ないと思うので
void foo(int a,int b,int *sum,int *prod)
にしておいて下さい。

void main()[
と書いてありますが、 [ ではなく { ですのでそこも変えて下さい。

最後、セミコロンを忘れているのでそれも追加して下さい。

hss12

Re:アリゴリズムの参照渡し

#5

投稿記事 by hss12 » 16年前

intx=0;

int x=0;
とスペースを空けないとダメです。
あと全角スペースは使えません。

mossa

Re:アリゴリズムの参照渡し

#6

投稿記事 by mossa » 16年前

#include<stdio.h>

 int main(){
	int x=0;
	int y=0;
	foo(2,5,&x,&y);
	printf("%d,%d\n",x,y);
}
と直したのですが、まだ間違いがあり、ビルドできませんでした。
fooの識別子とは?int型、void型でも違いました・・。

Blue

Re:アリゴリズムの参照渡し

#7

投稿記事 by Blue » 16年前

#include<stdio.h>

void foo(int a,int b,int *sum,int *prod)
{
	*sum=a+b;
	*prod=a*b;
}
 int main(){
	int x=0;
	int y=0;
	foo(2,5,&x,&y);
	printf("%d,%d\n",x,y);
}

初級者

Re:アリゴリズムの参照渡し

#8

投稿記事 by 初級者 » 16年前

念のため、xとyをゼロで初期化しておく必要はありません。

誤:アリゴリズム
正:アルゴリズム

閉鎖

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