次の働きをするプログラムを作ろうと考えてますが、出来ない状態です。
入力:1から4999の間のアラビア数字を受け取る。入力の終わりは改行。
出力:入力されたアラビア数字に対応するローマ数字を出力する。
変換したい次のアラビア数字があるかどうかを(y又はnで)尋ねてyならば上の入力からを繰り返す,nならば終了。
自分が考えたのは、4999以下のアラビア数字がきた場合と5000以上のアラビア数字がきた場合を考え、 int c;while((c=getchar()) != '\n')、Switch(c)文を使い、CASEでCase C<=4999:Case C>=5000としたのですがコンパイルできませんでした。ご指摘やアドバイス、このプログラム自体教えていただければありがたいです。お願いします
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
3つも回答してすみません。
よく文章読まない人なんで。
下のプログラムに繰り返すか訪ねる文を追加すれば希望のプログラムになると思います。
それと、Case文では条件は使えません
switch(c)
{ case n:
と書けばc==nの時に実行されます。
No.2
- 回答日時:
よく考えれば数値を減らしながら出力すれば変数が必要な気が・・・
#include<stdio.h>
main()
{ int n;
printf("アラビア数字を入力してください");
scanf("%d",&n);
if(n>=1&&n<=4999)
{
while(n>=1000)
{ printf("M");
n=n-1000;
}
if(n>=500)
{ printf("D");
n=n-500;
}
while(n>=100)
{ printf("C");
n=n-100;
}
if(n>=50)
{ printf("L");
n=n-50;
}
while(n>=10)
{ printf("X");
n=n-10;
}
if(n>=5)
{printf("V");
n=n-5;
}
while(n>=1)
{ printf("I");
n--;
}
printf("\n");
}
return 0;
}
No.1
- 回答日時:
1.変数の宣言
2.数値の入力
3.1~4999の範囲か? そうでなければ終了
4.M(1000)の数を計算
5.同じ方法でD(500)、C(100)、L(50)、X(10),V(5),I(1)を計算
6.計算結果に従って表示
#include<stdio.h>
main()
{ int n,m,d,c,l,x,v,i;
printf("アラビア数字を入力してください");
scanf("%d",&n);
if(n>=1&&n<=4999)
{
m=n/1000;
n=n%1000;
d=n/500;
n=n%500;
c=n/100;
n=n%100;
l=n/50;
n=n%50;
x=n/10;
n=n%10;
v=n/5;
n=n%5;
i=n;
n=1;
while(n>=m)
{ printf("M");
n--;
}
if(d)printf("D");
n=1;
while(n>=c)
{ printf("C");
n--;
}
if(l)printf("L");
n=1;
while(n>=x)
{ printf("X");
n--;
}
if(v)printf("V");
n=1;
while(n>=i)
{ printf("I");
n--;
}
printf("\n");
}
return 0;
}
こんな感じですかね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- 文学・小説 横書き小説の数字の表記について 1 2023/01/15 22:05
- Java Java 南京錠 2 2023/02/04 11:46
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既約分数の表示プログラム
-
10個出力で改行したいのですが...
-
ホームページをC言語で作りたい...
-
コンパイルエラーについて
-
8人分のテストの点数を入力し、...
-
%P と %X の違い
-
c言語でAからZまでを表示する...
-
Cのdoubleの浮動小数点表示につ...
-
三角形の判別
-
printf で二進表示を行いたい。
-
入力したお金の金額からお札の...
-
分数を表示するプログラム(長...
-
strcmp
-
4の倍数を論理演算で表す。。
-
アドレスの比較について
-
再帰処理 変換
-
C++ 二次関数の重解、虚数解が...
-
球の体積と表面積を表示するプ...
-
C言語で連立一次方程式
-
なぜgccはstdio.hをインクルー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語について
-
printf で二進表示を行いたい。
-
cshの文字列操作(0埋め)
-
10個出力で改行したいのですが...
-
コンパイルエラーについて
-
テキストカーソル位置の取得
-
strcmp
-
unsigned int型について
-
c言語でAからZまでを表示する...
-
printf( " %2d", p * q );
-
コマンドラインに出力した文字...
-
printfの出力内の文字をdefine...
-
ホームページをC言語で作りたい...
-
コマンドプロンプトがすぐ消える
-
小数点切捨て表示
-
【C言語教えてください】sin波...
-
switch分のケースを範囲数?に...
-
二つの整数値の大小比較
-
4の倍数を論理演算で表す。。
-
defineで定数が置き換えられな...
おすすめ情報