ページ 11

参考書の自作関数の問題について聞きたいことがあります

Posted: 2010年12月22日(水) 18:01
by asaly

コード:

#include <stdio.h>
#include <stdlib.h>

int func(int a,int b){
	int total = a+b;
	return total;
}

int main(int argc,char* argv[]){
	int d=0;
	int a = 0, b= 0;
	
	if(argc == 3){
		a = atoi(argv[1]);
		b = atoi(argv[2]);
		d = func(a,b);
		printf("%d+%d = %d\n",a,b,d);
	}
	return 0;
}
参考書をみていたら少しわからない場所が出てきたので質問をさせていただきます

上記のサンプルは「プログラム実行時に2つの整数値を引数でわたして その値を足した結果を
返す関数を作りなさい」という参考書の問題の答えなのですが
これを実行しても何も起こりませんしプログラムの意味もよくわかりません

どなたかわかる方は教えていただけないでしょうか
よろしくお願いいたします

Re: 参考書の自作関数の問題について聞きたいことがあります

Posted: 2010年12月22日(水) 18:10
by みけCAT
if(argc == 3)となっているので、コマンドラインから引数を二つ与えてやらないと何も起こりません。
コマンドプロンプトから「(exeファイル名) 123 456」などのように実行してください。
またはメモ帳に以下の内容を入力し、「run.bat」というファイル名で
これをコンパイルしたexeと同じフォルダに置き、ダブルクリックしてみてください。

コード:

(exeファイル名) 123 456
pause

Re: 参考書の自作関数の問題について聞きたいことがあります

Posted: 2010年12月22日(水) 18:14
by softya(ソフト屋)
コマンドラインでの引数についての説明は本に書かれていませんか?
これはコマンドラインで実行する場合に使うもので、次のように使います。
http://www.geocities.jp/ky_webid/c/045.html

Re: 参考書の自作関数の問題について聞きたいことがあります

Posted: 2010年12月22日(水) 18:14
by みけCAT
asaly さんが書きました:プログラムの意味もよくわかりません
ざっとこんなもんでしょう。

コード:

#include <stdio.h>					/*stdio.hを取り込む*/
#include <stdlib.h>					/*stdlib.hを取り込む*/
 
int func(int a,int b){				/*funcという関数を宣言する*/
    int total = a+b;				/*totalという変数はaとbの和*/
    return total;					/*totalを返す*/
}
 
int main(int argc,char* argv[]){	/*この関数を起動時に呼び出す*/
    int d=0;						/*dを宣言し、0に初期化する*/
    int a = 0, b= 0;				/*aとbを宣言し、それぞれ0に初期化する*/
    
    if(argc == 3){					/*コマンドライン引数が3個だったら*/
        a = atoi(argv[1]);			/*2個目の引数を整数にしたものをaに代入*/
        b = atoi(argv[2]);			/*3個目の引数を整数にしたものをbに代入*/
        d = func(a,b);				/*func関数の戻り値をdに代入*/
        printf("%d+%d = %d\n",a,b,d);/*足し算の結果を表示*/
    }
    return 0;						/*正常終了*/
}