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

03.10.2010
14
0
#1
Здравствуйте. Необходимо написать программу выполняющую данный перевод.

На языке Си.

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

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 ();
}
В чем проблема?)
Заранее спасибо
 
R

rotas

Гость
#2
Проблема в том, что вы неправильно используете функции 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 ();