実行できません

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

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 実行できません

Re: 実行できません

#9

by かずま » 6ヶ月前

次のコードは、999以下の自然数という制限に反するので
解答ではありませんが、参考にはなるでしょう。

コード:

#include <stdio.h>

int main(void)
{
	static char *s[] = {
		"One", "Ten", "Hundred", "Thousand",
		"Ten thousand", "Hundred thousand", "Million",
		"Ten million", "Hundred million", "Billion"
	};
	char d[10];
	int y, i = 0;

	printf("Input a positive number: ");
	if (scanf("%d", &y) != 1 || y < 0) return 1;
	do d[i++] = y % 10 + '0'; while (y /= 10);
	while (--i >= 0) printf("  %s's digit: %c\n", s[i], d[i]);
}
実行例

コード:

Input a positive number: 2147483647
  Billion's digit: 2
  Hundred million's digit: 1
  Ten million's digit: 4
  Million's digit: 7
  Hundred thousand's digit: 4
  Ten thousand's digit: 8
  Thousand's digit: 3
  Hundred's digit: 6
  Ten's digit: 4
  One's digit: 7

Re: 実行できません

#8

by Riko » 6ヶ月前

みけCAT さんが書きました:
6ヶ月前
もしくは、「まだ実行できない」という認識が「誤り」である可能性が考えられます。
実行できないという認識の誤りでした。
実行できました。

お力添えくださった皆さんありがとうございました!

Re: 実行できません

#7

by みけCAT » 6ヶ月前

もしくは、「まだ実行できない」という認識が「誤り」である可能性が考えられます。

Re: 実行できません

#6

by みけCAT » 6ヶ月前

Wandboxでは正常に実行できるので、環境が不適切な可能性が考えられます。

Re: 実行できません

#5

by littlestream » 6ヶ月前

任意の10進数の桁を取り出す場合一般的かどうかは分からないですが、それぞれの桁が10の累乗
であることを利用します。以下の式でもとまります。
Ketanumは求めたい桁の変数、Nは任意の元の変数として、
桁が1の桁を0として10の桁を1、100の桁を2してKetaという変数にします。

Ketanum=(N/(10のKetaの累乗))%10;

ちなみに、この応用で2進数や16進数に変換することが出来ます。

Re: 実行できません

#4

by Riko » 6ヶ月前

ご指摘ありがとうございます。
yの値入力を前に持ってきて&nを消去しました(\nと間違えていました)。

まだ実行できないのですが誤りありますでしょうか?

コード:

#include <stdio.h>
int main(void)
{

	int y; /* 999以下の自然数*/

	printf("Input a three-digit number : ");
	scanf("%d" , &y);
	
	int a; /* 100の位 */
	int b; /* 10の位 */
	int c; /* 1の位 */

	a=y/100;
	printf("Hundreds digit = %d" ,a);
	
	b=(y%100)/10;
	printf("Tens digit = %d" , b);
	
	c=y%10;
	printf("Ones digit = %d" , c);
	
	return 0;
}

Re: 実行できません

#3

by box » 6ヶ月前

コード:


	a=y/100;
	b=(y%100)/10;
	c=y%10;

	scanf("Input a three-digit number : %d &n" , &y);
yの値を入力する「前に」計算しているのがおかしい。
&nという謎の記述はなくてよいはず。

Re: 実行できません

#2

by box » 6ヶ月前

コード:


	a=y/100;
	b=(y%100)/10;
	c=y%10;

	scanf("Input a three-digit number : %d &n" , &y);[/code
yの値を入力する「前に」計算しているのがおかしい。
&nという謎の記述はなくてよいはず。

実行できません

#1

by Riko » 6ヶ月前

こちらのプログラム、実行ができず文字化けしてしまいます。
正解ではなくヒントをいただけたらと思います。(課題です)
C言語は超初心者です、初めて自分で書いたものです。

問題:999以下の自然数を入力するとその数の百、十、一のけたを分離して表示するプログラムを作成せよ。

自分の回答:

コード:

#include <stdio.h>
int main(void)
{

	int y; /* 999以下の自然数*/
	int a; /* 100の位 */
	int b; /* 10の位 */
	int c; /* 1の位 */

	a=y/100;
	b=(y%100)/10;
	c=y%10;

	scanf("Input a three-digit number : %d &n" , &y);
	printf("Hundreds digit = %d &n" ,a);
	printf("Tens digit = %d &n" , b);
	printf("Ones digit = %d &n" , c);

	return 0;
}

ページトップ