ページ 11

c言語 関数

Posted: 2015年6月27日(土) 20:01
by AiueoKakikukeko
2つの整数を引数として受け取って、合計をと差を表示するという問題で

コード:

#include<stdio.h>

void keisan(int seisuu1, int seisuu2);
int main(void)
{
int sum,diff;

printf("2つの整数を入力してください\n");
printf("整数1");
scanf("%d",&seisuu1);
printf("整数2");
scanf("%d",&seisuu2);

return 0;
}
int sum(int x, int y){
return x+y;
}

int diff(int x, int y){
return x>y?x-y:y-x;
}

という風に書いてみたのですがなにが間違っているのか教えていただきたいです。

Re: c言語 関数

Posted: 2015年6月27日(土) 20:16
by Rittai_3D
何が知りたいのでしょうか。
表示ができない、というのでしたら
せっかく作った関数を呼び出してない、表示する為の処理も書いてないので表示されません。
printf() などを利用して表示するようにしてください。

あと、keisan関数の実体はどこでしょうか。宣言だけして実体を書かないなら無意味に思えます。

Re: c言語 関数

Posted: 2015年6月27日(土) 20:59
by naohiro19
  1. keisan関数の実装された関数が存在しない
  2. seisuu1とseisuu2の変数宣言がない
  3. sum関数とdiff関数のプロトタイプ宣言がない

Re: c言語 関数

Posted: 2015年6月27日(土) 21:07
by namachan10777

コード:

#include<stdio.h>
int sum(int,int);//宣言を追加
int diff(int,int);//宣言を追加
void keisan(int seisuu1, int seisuu2){	//keisanの実装
	printf("和\n");//追加
	printf("%d\n", sum(seisuu1,seisuu2));//追加
	printf("差\n");//追加
	printf("%d\n",diff(seisuu1,seisuu2));//追加
}

int main(void)
{
	int seisuu1,seisuu2;// int sum,diff; 実装に合うよう宣言を変更

	printf("2つの整数を入力してください\n");
	printf("整数1");
	scanf("%d",&seisuu1);
	printf("整数2");
	scanf("%d",&seisuu2);

	keisan(seisuu1,seisuu2);//keisan関数の呼び出しを追加
		return 0;
}
int sum(int x, int y){
	return x+y;
}

int diff(int x, int y){
	return x > y ? x-y : y-x;
}
分かりやすいようインデントを入れて自分で修正させていただきました。
変更点をコメントに書いてあります