無題

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

無題

#1

投稿記事 by 女郎花 » 17年前

1~4999までの整数をローマ記法に変換するプログラムを作成し、 入力した整数を変換した結果を表示し0が入力されるまで変換し続けるプログラムを作りたいのですが(実行例:1024 ===> MXXIIII
#include<stdio.h>
int main (void)
{
    iny i,j,n;
    char roman[7]={'M','D','C','L','X','V','I'};
    int num[7]={1000,500,100,50,10,5,1};
    scanf("%d"<&n);
    for(i=0;n;i++);
    {
        for(j=0;j<n/num;j++)
        putchar(roman);
        n%=num
    }
    return 0;
}

これでやってみると1回しか変換できなくて・・・解決策としてはwhile文を使うのですかね?お願いします。

バグ

Re:無題

#2

投稿記事 by バグ » 17年前

自分が思いつく方法があるのならば、全て試してみるのがいいですよ。
トライ&エラーが上達の近道です。頑張って!(^-^)
考え方は間違ってないです。

at

Re:無題

#3

投稿記事 by at » 17年前

>iny i,j,n;

int??それとも定義済みですか?

>n%=num

とりあえずセミコロンが必要な気がしますね・・・

Re:無題

#4

投稿記事 by » 17年前

#include <stdio.h>

int main(void)
{
int i, j, n;
char roman[7] = {'M','D','C','L','X','V','I'};
int num[7] = {1000,500,100,50,10,5,1};

  for(;;)
  {
printf("整数入力     => ");
scanf("%d", &n);

// 0入力時終了
if(n == 0)
   return 0;

printf("ローマ記法変換後 => ");
for(i = 0; n; i++)
{
for(j = 0; j < n / num; j++)
  putchar(roman);
  n %= num;
}
printf("\n\n");
  }

return 0;
}

これで、0を入力した時に終了しますよ。

>for(i=0;n;i++);
for文にはセミコロンは必要ないです。

女郎花

Re:無題

#5

投稿記事 by 女郎花 » 17年前

>>バグさん
どうもです。
回答者になれるよう精進します。

>>atさん
う・・・intでした、すみません
ミス多すぎでした、ご指摘ありがとうございます。

>>☆さん
ありがとうございます。
for文にセミコロンとか素人丸出しですね、どうもでです。

閉鎖

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