for文とswitch文を使って十進数と十六進数を十個ずつ比較しながら羅列するには?

解決


ゆう  2005-05-28 23:34:57  No: 57600

タイトル通りの内容なのですが、変数をX,Yとして十個ずつ比較しながら羅列したいのですが、どうもうまくいきません。十進数をdecimal十六進数をhexとするらしいのですが・・・


まきじ  2005-05-29 00:21:37  No: 57601

どこがどの様に分からないのですか?

十個いっぺんには比較できません。


ゆう  2005-05-29 18:25:00  No: 57602

for文とswitch文をどのようなループで回していったらよいのかなのですが・・・
またfor文switch文をいくつ使ったらよいのかなど教えてください。


まきじ  2005-05-29 19:58:16  No: 57603

では、できてる部分だけで良いのでソースを提示して下さい。
というか、問題の意味がよく分からないですが?

10 と 0X000A を比較して、比較の結果に問わず
 "10 0X000A"と表示するのですか?
それとも、同じだったら表示なのか?

10個ずつっていうのはどういう意味?配列ですか?

変数は int 型?
int 型としたら、x = 10 も y = 0x000A も同じ事ですよ。
という事で、char 型の二次元配列でしょうか?


ゆう  2005-05-30 03:17:47  No: 57604

int main()
{
int a=0
int b=1
int x
int y
for(i=0;i<10;i++){
printf("decimal:")
switch(a+=b)
case 1: printf("%2d\n",a)
break:
printf("hex:")
case 2: printf("%2x\n",a)
break:
}
//ひとつ改行したい//
for(i=10;i<20;i++){
printf("decimal:")
switch(a+=b)
case 1: printf("%2d\n",a)
break:
printf("hex:")
case 2: printf("%2x\n",a)
break:
}
こんな感じですがこれでは動かないと思うので、ご指南お願いします。
breakの使い方が間違ってるんですかね?変数xyも必要かわからないです。


ゆう  2005-05-30 03:22:59  No: 57605

たぶんswitch式が間違ってるのかもしれないです。


まきじ  2005-05-30 04:03:10  No: 57606

x と y が使われていない様ですが?
i が宣言されていません。
; がありません。
switch 文は {} で囲んでください。

で、私にはこのソースから何をしたいのか分かりません。
問題をもう少し分かりやすく説明してください。


まきじ  2005-05-30 04:05:04  No: 57607

>変数xyも必要かわからないです。
必要かわからないって(^^;
あなたが、「変数をX,Yとして十個ずつ比較しながら羅列したいのです」
と仰ってるじゃないですか?


ぺる  2005-05-30 05:32:33  No: 57608

まず、C言語の本を読みましょう。
それから、プログラムを書きましょう。
以上。


気分屋  2005-05-30 12:03:08  No: 57609

以下のように書きたかったのでしょうか?

void main( void )
{
  int x, y;

  for( y = 0 ; y < 10*2 ; y++ ) {
    switch(y&1) {
      case 0 :
        printf("\ndecimal:");
        break;
      case 1:
        printf("    hex:");
        break;
    }
    for( x = 0 ; x < 10 ; x++ ) {
      switch(y&1) {
        case 0 :
          printf("%4d", y/2*10+x );
          break;
        case 1:
          printf("%4x", y/2*10+x );
          break;
      }
    }
    printf("\n");
  }
}


ゆう  2005-05-30 21:30:48  No: 57610

気分屋さん、まさしくこの通りです。やっぱりわかってくれる人はわかってくれるんですね。ありがとうございました。


まきじ  2005-05-30 22:02:29  No: 57611

作って貰って、「はい、さいなら」で終わりですか?(^^;
実行結果が希望通りであれば、何でも良いのですね。

縦バージョンでも貼っておこう。

#include <stdio.h>
#include <stdlib.h>

#define N 255

int main(void){

  int i;
  int c;
  
  printf("0 から %d までの、10 進数と 16 進数を表示します\n",N);
  for(i = 0; i <= N; i++){
    if(i%10 == 0){
      puts("何かキーを押してください(終了は Q )");
      if((c =getchar()) == 'Q') break;
      else printf("%8s %8s\n","decimal", "hex");
    }
    printf("%5d %10X\n",i, i);
  }
  return EXIT_SUCCESS;
}


REE  2005-05-30 22:19:03  No: 57612

>やっぱりわかってくれる人はわかってくれるんですね。
10人に1人が分かる説明ではなく、10人全員(無理でも9人)分かる説明を心がけてください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加