タイトル通りの内容なのですが、変数をX,Yとして十個ずつ比較しながら羅列したいのですが、どうもうまくいきません。十進数をdecimal十六進数をhexとするらしいのですが・・・
どこがどの様に分からないのですか?
十個いっぺんには比較できません。
for文とswitch文をどのようなループで回していったらよいのかなのですが・・・
またfor文switch文をいくつ使ったらよいのかなど教えてください。
では、できてる部分だけで良いのでソースを提示して下さい。
というか、問題の意味がよく分からないですが?
10 と 0X000A を比較して、比較の結果に問わず
"10 0X000A"と表示するのですか?
それとも、同じだったら表示なのか?
10個ずつっていうのはどういう意味?配列ですか?
変数は int 型?
int 型としたら、x = 10 も y = 0x000A も同じ事ですよ。
という事で、char 型の二次元配列でしょうか?
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も必要かわからないです。
たぶんswitch式が間違ってるのかもしれないです。
x と y が使われていない様ですが?
i が宣言されていません。
; がありません。
switch 文は {} で囲んでください。
で、私にはこのソースから何をしたいのか分かりません。
問題をもう少し分かりやすく説明してください。
>変数xyも必要かわからないです。
必要かわからないって(^^;
あなたが、「変数をX,Yとして十個ずつ比較しながら羅列したいのです」
と仰ってるじゃないですか?
まず、C言語の本を読みましょう。
それから、プログラムを書きましょう。
以上。
以下のように書きたかったのでしょうか?
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");
}
}
気分屋さん、まさしくこの通りです。やっぱりわかってくれる人はわかってくれるんですね。ありがとうございました。
作って貰って、「はい、さいなら」で終わりですか?(^^;
実行結果が希望通りであれば、何でも良いのですね。
縦バージョンでも貼っておこう。
#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;
}
>やっぱりわかってくれる人はわかってくれるんですね。
10人に1人が分かる説明ではなく、10人全員(無理でも9人)分かる説明を心がけてください。
ツイート | ![]() |