ページ 11

C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:02
by たかとしー
1割引、3割引、5割引、8割引の計算式にしたいのですが、エラーになります。
どこがおかしいのでしょうか?

#include <stdio.h>

int main(void)
{
int teika;

/* 入力部分 */
scanf("%d ,&teika");

/* 計算部分 */
itiwari = teika * 10 / 1;
sanwari = teika * 10 / 3;
gowari = teika * 10 / 5;
hatiwari = teika * 10 / 8;

/* 表示部分 */
printf("1割引は%d\n,3割引は%d\n,5割引は%d\n,8割引は%d\n",itiwari,sanwari,gowari,hatiwari);
;
return 0;
}

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:06
by みけCAT
コードを提示するときは、BBcodeを有効にした状態でcodeタグで囲み、
かつきちんとインデントをしていただけると、見やすくて助かります。
たかとしー さんが書きました:どこがおかしいのでしょうか?
scanfの入力指定に合った数のポインタが渡されていません。(文字列の範囲がおかしい?)

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:07
by みけCAT
変数itiwari、sanwari、gowari、hatiwariの宣言が提示されたコード内に見当たりませんが、
きちんと別のファイルor部分で宣言していますか?

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:15
by たかとしー
みけCAT さんが書きました:変数itiwari、sanwari、gowari、hatiwariの宣言が提示されたコード内に見当たりませんが、
きちんと別のファイルor部分で宣言していますか?
お返事有難うございます。
codeについて調べたのですが、まだ習っていないのでよくわかりませんでした。
もう少し勉強が進めばわかるかと思います。初心者ですみません。

宣言とは下記のような感じでいいのでしょうか?

int teika;

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:23
by たかとしー
たかとしー さんが書きました:
みけCAT さんが書きました:変数itiwari、sanwari、gowari、hatiwariの宣言が提示されたコード内に見当たりませんが、
きちんと別のファイルor部分で宣言していますか?
お返事有難うございます。
codeについて調べたのですが、まだ習っていないのでよくわかりませんでした。
もう少し勉強が進めばわかるかと思います。初心者ですみません。

宣言とは下記のような感じでいいのでしょうか?

int teika;
「scanfの入力指定に合った数のポインタ」についても調べましたが、よくわかりませんでした。
もう少し調べてみます。

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:28
by みけCAT
今回の場合、例えばこのような感じになります。

コード:

#include <stdio.h>

int main(void)
{
	int teika;
	int itiwari,sanwari,gowari,hatiwari; /* 追加 */

	/* 入力部分 */
/*	scanf("%d ,&teika"); */
	scanf("%d" ,&teika); /* 修正 */

	/* 計算部分 */
	itiwari = teika * 10 / 1;
	sanwari = teika * 10 / 3;
	gowari = teika * 10 / 5;
	hatiwari = teika * 10 / 8;

	/* 表示部分 */
	printf("1割引は%d\n,3割引は%d\n,5割引は%d\n,8割引は%d\n",itiwari,sanwari,gowari,hatiwari);
	;
	return 0;
}

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:34
by box
そもそも、
たかとしー さんが書きました:1割引、3割引、5割引、8割引の計算式にしたい
1割引、3割引、5割引、8割引の式になっていません。
ものすごい勘違いをされているようです。
たかとしー さんが書きました:

コード:

	itiwari = teika * 10 / 1;
	sanwari = teika * 10 / 3;
	gowari = teika * 10 / 5;
	hatiwari = teika * 10 / 8;
1割引とは、元の9割です。
今の式では、元の10倍になっています。
他も同様です。

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:38
by たかとしー
ご返事有難うございます。
下記のような感じでしょうか。
実行すると数字を入力できるところまではいきました。
数字を打つとエラーになってしまいます^^;


#include <stdio.h>

int main(void)
{
int teika;
int itiwari,sanwari,gowari,hatiwari; /* 追加 */


/* 入力部分 */
scanf("%d ,&teika");

/* 計算部分 */
itiwari = teika * 10 / 1;
sanwari = teika * 10 / 3;
gowari = teika * 10 / 5;
hatiwari = teika * 10 / 8;

/* 表示部分 */
printf("1割引は%d\n,3割引は%d\n,5割引は%d\n,8割引は%d\n",itiwari,sanwari,gowari,hatiwari);
;
return 0;
}

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:42
by たかとしー
本当ですね。
失礼しました。
計算式を下記に訂正しました。

#include <stdio.h>

int main(void)
{
int teika;
int itiwari,sanwari,gowari,hatiwari; /* 追加 */


/* 入力部分 */
scanf("%d ,&teika");

/* 計算部分 */
itiwari = teika * 1 / 10;
sanwari = teika * 3 / 10;
gowari = teika * 5 / 10;
hatiwari = teika * 8 / 10;

/* 表示部分 */
printf("1割引は%d\n,3割引は%d\n,5割引は%d\n,8割引は%d\n",itiwari,sanwari,gowari,hatiwari);
;
return 0;
}
box さんが書きました:そもそも、
たかとしー さんが書きました:1割引、3割引、5割引、8割引の計算式にしたい
1割引、3割引、5割引、8割引の式になっていません。
ものすごい勘違いをされているようです。
たかとしー さんが書きました:

コード:

	itiwari = teika * 10 / 1;
	sanwari = teika * 10 / 3;
	gowari = teika * 10 / 5;
	hatiwari = teika * 10 / 8;
1割引とは、元の9割です。
今の式では、元の10倍になっています。
他も同様です。

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:54
by たかとしー
たびたびすみません!
続きがあったんですね。
解決しました。みけCATさん有難うございます。

みけCAT さんが書きました:今回の場合、例えばこのような感じになります。

コード:

#include <stdio.h>

int main(void)
{
	int teika;
	int itiwari,sanwari,gowari,hatiwari; /* 追加 */

	/* 入力部分 */
/*	scanf("%d ,&teika"); */
	scanf("%d" ,&teika); /* 修正 */

	/* 計算部分 */
	itiwari = teika * 10 / 1;
	sanwari = teika * 10 / 3;
	gowari = teika * 10 / 5;
	hatiwari = teika * 10 / 8;

	/* 表示部分 */
	printf("1割引は%d\n,3割引は%d\n,5割引は%d\n,8割引は%d\n",itiwari,sanwari,gowari,hatiwari);
	;
	return 0;
}

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:57
by たかとしー
たかとしー さんが書きました:たびたびすみません!
続きがあったんですね。
解決しました。みけCATさん有難うございます。

みけCAT さんが書きました:今回の場合、例えばこのような感じになります。

コード:

#include <stdio.h>

int main(void)
{
	int teika;
	int itiwari,sanwari,gowari,hatiwari; /* 追加 */

	/* 入力部分 */
/*	scanf("%d ,&teika"); */
	scanf("%d" ,&teika); /* 修正 */

	/* 計算部分 */
	itiwari = teika * 10 / 1;
	sanwari = teika * 10 / 3;
	gowari = teika * 10 / 5;
	hatiwari = teika * 10 / 8;

	/* 表示部分 */
	printf("1割引は%d\n,3割引は%d\n,5割引は%d\n,8割引は%d\n",itiwari,sanwari,gowari,hatiwari);
	;
	return 0;
}

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 00:59
by box
たかとしー さんが書きました: 解決しました。
本当ですか?
1割「引き」になっていないです。

Re: C言語初歩の質問です(scanf)

Posted: 2013年10月17日(木) 01:08
by たかとしー
box さんが書きました:
たかとしー さんが書きました: 解決しました。
本当ですか?
1割「引き」になっていないです。

下記のように修正しました。
有難うございます。

#include <stdio.h>

int main(void)
{
int teika;
int itiwari,sanwari,gowari,hatiwari; /* 追加 */

/* 入力部分 */
/* scanf("%d ,&teika"); */
scanf("%d" ,&teika); /* 修正 */

/* 計算部分 */
itiwari = teika * 9 / 10;
sanwari = teika * 7 / 10;
gowari = teika * 5 / 10;
hatiwari = teika * 2 / 10;

/* 表示部分 */
printf("1割引は%d\n3割引は%d\n5割引は%d\n8割引は%d\n",itiwari,sanwari,gowari,hatiwari);
;
return 0;


}