何度もすみません。ご指導お願いします。
Posted: 2011年5月31日(火) 20:32
以下の文に16進数で入力:__,__,__,__,__エンターキーを入力すると16進数の値が10進数の値に変換され、10進数の値の小さい順に表示されます。
これを表示結果を16進数で表示したいのですが教えて頂けますか?比較は今までどおり10進数の値の小さい順で比較します。
#include <stdio.h>
int main (void)
{
char data[256];
int val[100];
int i = 0;
int work;
int j;
int k;
printf("入力 = ");
scanf("%s",data);
for(i=0;i<100;i++){
val = 0;
}
k=0;
for(i = 0;i<100 ; i++){
if(data == 0x00){//dataがNULLだったら処理を抜ける
k++;
break;//enterキーでprintf出力
}
else if(data == ','){//カンマだったら
/*printf("%d\n",k);*/
k++;
}
else{
if(data >= 'A' && data <= 'Z'){//dataにAからZが入ったら
val[k] = val[k] *16 + data -'A'+10;
}
else if(data >= '0' && data <= '9'){//data[i]に0から9が入ったら
val[k] = val[k] *16 + data[i] -'0';
}
}
}
/*printf("k=%d\n",k);
for(i=0;i<k;i++){
printf("出力 = %d\n",val[i]);
}
*/
//バブルソート//
for(j=0;j<k-1;j++)
{
for(i=0; i<k-1-j; i++)
{
if(val[i] < val[i+1])
{
}
else{
work = val[i];
val[i] = val[i+1];
val[i+1] = work;
}
}
}
for(i=0;i<k;i++)
{
printf("出力 = %d\n",val[i]);
}
}
これを表示結果を16進数で表示したいのですが教えて頂けますか?比較は今までどおり10進数の値の小さい順で比較します。
#include <stdio.h>
int main (void)
{
char data[256];
int val[100];
int i = 0;
int work;
int j;
int k;
printf("入力 = ");
scanf("%s",data);
for(i=0;i<100;i++){
val = 0;
}
k=0;
for(i = 0;i<100 ; i++){
if(data == 0x00){//dataがNULLだったら処理を抜ける
k++;
break;//enterキーでprintf出力
}
else if(data == ','){//カンマだったら
/*printf("%d\n",k);*/
k++;
}
else{
if(data >= 'A' && data <= 'Z'){//dataにAからZが入ったら
val[k] = val[k] *16 + data -'A'+10;
}
else if(data >= '0' && data <= '9'){//data[i]に0から9が入ったら
val[k] = val[k] *16 + data[i] -'0';
}
}
}
/*printf("k=%d\n",k);
for(i=0;i<k;i++){
printf("出力 = %d\n",val[i]);
}
*/
//バブルソート//
for(j=0;j<k-1;j++)
{
for(i=0; i<k-1-j; i++)
{
if(val[i] < val[i+1])
{
}
else{
work = val[i];
val[i] = val[i+1];
val[i+1] = work;
}
}
}
for(i=0;i<k;i++)
{
printf("出力 = %d\n",val[i]);
}
}