Wątek przeniesiony 2014-12-03 10:28 z C/C++ przez ŁF.

Zamiana systemu bin na dziesietny

0

Witam serdecznie,
mam taki problem - otóż na stacjonarnym komputerze, program normalnie mi się kompiluje, gdy próbuje go uruchomić na laptopie, program nie działa.
Czy jest to problem mojego kompilatora? Na pc używam, dev a na laptopie z visual studio.

 #include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
main()
{
	char binaryNumber[100];
	int lenght, i, decimalNumber = 0;
	printf("Give me a number \n");
	scanf_s("%s", &binaryNumber);
	lenght = strlen(binaryNumber);
	printf("Lenght of your number is %i \n", lenght);
	for (i = 0; i < lenght; i++)
	if (binaryNumber[i] != '1' && binaryNumber[i] != '0')
	{
		printf("Your number is invalid! \n");
		break;
	}
	else if (binaryNumber[i] == '1')
	{
		decimalNumber += pow(2, (float)lenght - i - 1);
	}
	printf("decimal is: %i", decimalNumber);
	system("pause");
}

Z góry bardzo dziękuję za pomoc!

0

Zdefiniuj

program nie działa.

0

Z dowolnego SYSTEMU na dowolny da się napisać krótszy kod: http://4programmers.net/Forum/C_i_C++/228212-konwersja_systemow_liczbowych?p=1005274#id1005274

#include <stdio.h>

int main()
  {
   int ch;
   unsigned num=0;
   printf("Give me a number: ");
   while(strchr("01",ch=getchar())) num=num*2+ch-'0'; // to jest całe wczytywanie i zamiana - reszta to analiza błedów
   while(isspace(ch)&&(ch!='\n')) ch=getchar();
   if(ch!='\n')
     {
      printf("Your number is invalid!\n");
      while(getchar()!='\n') {}
     }
   else printf("decimal is: %u",num);
   getchar(); // jeżeli potrzebujesz zatrzymania to lepiej zmień system na jakiś z tego tyśiąclecia
   return 0;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1