Перевод Из 16-ой Системы Счисления В 10-ю. Си

Тема в разделе "C/C++/C#", создана пользователем NicePlant, 29 апр 2012.

  1. NicePlant

    NicePlant Member

    Регистрация:
    3 окт 2010
    Сообщения:
    14
    Симпатии:
    0
    Здравствуйте. Необходимо написать программу выполняющую данный перевод.

    На языке Си.

    Начал писать, но что то не выполняется(.

    Код (C++):
    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
    #include <math.h>
    #include <stdio.h>


    int HEX_TO_DEC(char st[10])
    {
    int i, s, k, p;
    s = 0;
    p = strlen(st) - 1;
    for (i = 0; st[i] != '\0'; i++)
    {
    switch (toupper(st[i]))
    {
    case 'A':
    k = 10;
    break;
    case 'B':
    k = 11;
    break;
    case 'C':
    k = 12;
    break;
    case 'D':
    k = 13;
    break;
    case 'E':
    k = 14;
    break;
    case 'F':
    k = 15;
    break;
    case '1':
    k = 1;
    break;
    case '2':
    k = 2;
    break;
    case '3':
    k = 3;
    break;
    case '4':
    k = 4;
    break;
    case '5':
    k = 5;
    break;
    case '6':
    k = 6;
    break;
    case '7':
    k = 7;
    break;
    case '8':
    k = 8;
    break;
    case '9':
    k = 9;
    break;
    case '0':
    k = 0;
    break;
    }
    s = s + k * pow(16, p);
    p--;
    }
    printf("%d, &s");
    return 0;
    }

    void main()
    {
    char s[10];
    char ch;
    printf ( "Plese, enter string: \n");
    scanf("%s, &s") ;
    printf ("Rezultant: \n");
    HEX_TO_DEC(s);
    scanf ();
    }
    В чем проблема?)
    Заранее спасибо
     
  2. rotas

    rotas Гость

    Проблема в том, что вы неправильно используете функции printf и scanf. На msdn они описаны как
    int scanf ( const char * format, ... );
    int printf ( const char * format, ... );
    Поэтому printf("%d, &s"); замените на printf("%d",s);,
    scanf("%s, &s") ; на scanf("%s",s) ;
    Для ожидания завершения:
    getch(); вместо scanf ();
     
Загрузка...

Поделиться этой страницей