dポイントプレゼントキャンペーン実施中!

c言語初心者です。
returnを使って違う関数からはじめのmainのプログラムに戻したいのですが、引数の使い方がいまいちよくわかりません。
どなたか良い方法を教えてください。
よろしくおねがいします。

A 回答 (6件)

No.2です。


返答からは、なにか根本的な勘違いがあるようです。
「引数」は、「ある関数Aから呼ばれる関数Bに対して、AがBに対して値を渡す為に使用する宣言」、
「return」は、「ある関数Aから呼ばれた関数Bが、実行した結果を返す為に使用する命令文」です。
「呼び出された関数に戻る」であって、「関数の先頭に戻る」ではありません。

>returnを使って違う関数からはじめのmainのプログラムに戻したいのですが
については、
-----------
int func1()
{
 return 0;
}
main()
{
 int a;
 a = func1();
}
-----------
で質問を満たします。

また
>引数の使い方がいまいちよくわかりません。
については
-----------
func2( int b )
{
 ;
}
main()
{
 int a = 0;
 func2( a );
}
-----------
のようなものが回答になります。

一番の問題は
>プログラムを初期画面に戻すようにしたいのですが、プログラムが終わると終了してしまうのです。
が質問文に無かったことです。
この一文があれば遠回りすることはありませんでした。
なお、質問者さんの言う「初期画面」とはどのような画面のことですか?
    • good
    • 0
この回答へのお礼

ご丁寧にどうもありがとうございました。
大変参考になります。

お礼日時:2009/12/04 16:25

>funcという戻り値が何故でてきたのですか?



funcは関数の名前の例です。戻り値のことではありません。

>returnを使って違う関数からはじめのmainのプログラムに戻したい

ここで書かれている「違う関数」の例として、funcを挙げました。
    • good
    • 0
この回答へのお礼

ありがとうございます。
みなさんのおかげでなんとか理解できました。

お礼日時:2009/12/04 16:26

以下のようなプログラムで答えになっていますか?



void main(){
:
:
while(1){//無限ループ
:
初期画面を出す処理
:
if(fun(xxx)==-1) break;//funからー1が戻ってきたらループを抜けて終了。それ以外は続行
}
終了処理
}
int fun(xxx){
if(異常終了か?)return -1;//終了したいときは-1を返す
正常処理
 return 0;//初期画面に戻りたいときは-1以外を返す
}
    • good
    • 0
この回答へのお礼

ありがとうございます。
なんとか理解できました。

お礼日時:2009/12/04 16:25

return の次に書くものを引数と呼んでいるのでしょうか? 実際これを引数とはよびませんが・・・・・・。


以下のプログラムが参考になりますか?
#include <stdio.h>
int fun(int i,int j);//プロトタイプ宣言
void main(){
int j;
j=fun(10,20); //10+20がjに代入される
printf("%d\n",j);
}
int fun(int i,int j){//funの前のintはfunが返す値の型
int result;
result=i+j;
return result;//return文の次に書く変数の型はfunが返す値の型と同じ
}

int fun・・・なので、resultの型はintでなければなりません。

funの本体は以下でもOKです(returnの次に式を書いてもOK)
int fun(int i,int j){
return i+j;//return文の次に書く式を評価した型はfunが返す値の型と同じ
}

この回答への補足

私の質問の仕方が悪かったです。

プログラムを初期画面に戻すようにしたいのですが、プログラムが終わると終了してしまうのです。

そのためにreturnを使ってうまくプログラムを初期画面に戻すことで完成させることができると考えたのですが、、、うまく伝わらなかったですね。

申し訳ないです。

補足日時:2009/12/02 09:53
    • good
    • 0

>引数の使い方がいまいちよくわかりません。


引数のどういったところが「いまいち」理解できませんか?
    • good
    • 0

returnの使い方と引数の使い方は、全く別の話です。



ある関数funcが、呼び出し元のmainにreturnするのは、funcの戻り値です。
引数は、mainからfuncを呼び出すときにfuncに与えるデータです。

どちらのことが知りたいのでしょうか?

この回答への補足

funcという戻り値が何故でてきたのですか?
初心者で申し訳ないです。

補足日時:2009/12/02 09:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!