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

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

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

#1

投稿記事 by たかとしー » 12年前

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;
}

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

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

#2

投稿記事 by みけCAT » 12年前

コードを提示するときは、BBcodeを有効にした状態でcodeタグで囲み、
かつきちんとインデントをしていただけると、見やすくて助かります。
たかとしー さんが書きました:どこがおかしいのでしょうか?
scanfの入力指定に合った数のポインタが渡されていません。(文字列の範囲がおかしい?)
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

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

#3

投稿記事 by みけCAT » 12年前

変数itiwari、sanwari、gowari、hatiwariの宣言が提示されたコード内に見当たりませんが、
きちんと別のファイルor部分で宣言していますか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

たかとしー

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

#4

投稿記事 by たかとしー » 12年前

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

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

int teika;

たかとしー

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

#5

投稿記事 by たかとしー » 12年前

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

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

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

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

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

#6

投稿記事 by みけCAT » 12年前

今回の場合、例えばこのような感じになります。

コード:

#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;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

box
記事: 2002
登録日時: 15年前

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

#7

投稿記事 by box » 12年前

そもそも、
たかとしー さんが書きました: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)

#8

投稿記事 by たかとしー » 12年前

ご返事有難うございます。
下記のような感じでしょうか。
実行すると数字を入力できるところまではいきました。
数字を打つとエラーになってしまいます^^;


#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)

#9

投稿記事 by たかとしー » 12年前

本当ですね。
失礼しました。
計算式を下記に訂正しました。

#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)

#10

投稿記事 by たかとしー » 12年前

たびたびすみません!
続きがあったんですね。
解決しました。みけ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)

#11

投稿記事 by たかとしー » 12年前

たかとしー さんが書きました:たびたびすみません!
続きがあったんですね。
解決しました。みけ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;
}

box
記事: 2002
登録日時: 15年前

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

#12

投稿記事 by box » 12年前

たかとしー さんが書きました: 解決しました。
本当ですか?
1割「引き」になっていないです。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

たかとしー

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

#13

投稿記事 by たかとしー » 12年前

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;


}

閉鎖

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