đổi cơ số

/* Bai tap 2_9 - Doi so tu co so n sang gia tri so co so m */

#include <stdio.h>

#include <string.h>

char *doics(char *number, int n, int m)

{

  static char ketqua[17];

  char chuso[16] = "0123456789ABCDEF";

  int i = 0, giatri = 0, len;

  len = strlen(number);

  while(i<len) {

    giatri = giatri * n + (strchr(chuso, number[i]) - &chuso);

    i++;

  }

  i=16;

  ketqua[17] = 0;

  do {

    ketqua[i] = chuso[giatri % m];

    giatri /= m;

    i--;

  } while (giatri > 0);

  return (ketqua + i  + 1);

}

void main()

{

  unsigned n, m;

  char number[17], *ketqua;

  do {

    printf("

Nhap gia tri N (2 - 16) : ");

    scanf("%d", &n);

  } while (n<2 || n>16);

  getchar();

  printf("Gia tri thuoc he %d : ", n);

  gets(number);

  do {

    printf("Nhap gia tri M (2 - 16) : ");

    scanf("%d", &m);

  } while (m<2 || m>16);

  printf("Gia tri %s o co so %u co gia tri o co so %u la : ", number, n, m);

  ketqua = doics(number, n, m);

  puts(ketqua);

  getch();

}

Bạn đang đọc truyện trên: TruyenTop.Vip

Tags: