Witam,
mój problem wygląda następująco:
Program działa zupełnie inaczej na moim komputerze, oraz moim szkolnym komputerze a inaczej na komputerze wykładowcy.
My korzystamy z linuxa i kompilujemy w terminalu przez gcc, natomiast Wykladowca kompiluje pod windowsem Dev Cpp (z tym ze dev takze korzysta z gcc -.- ),
mimo wszystko program u mnie dziala bezblednie a u Prowadzacego zle.
Sprawdzcie dla wartosci 25. U mnie wypisuje ze jest automorficzna, natomiast u oceniajacego wystwietla ze nie jest....
#include<stdio.h>
#include<math.h>
int cyfry(int liczba) //funkcja sprawdzajaca ile cyfr ma wprowadzona liczba
{
int b=1;
while(liczba>10){
liczba=liczba/10;
b++;
}
return b; //zmienna przchowujaca ilosc cyfr liczby wprowadzonej przez uzytkownika
}
int czy_automorficzna(int z){
int x, i, zpot, modulo, potega, wynik;
x=cyfry(z);
modulo=1;
for(i=0;i<x;i++){ /*uzyskuje w petli liczbe przez ktora podziele sprawdzana zmienna, adekwatna do dlugosci zmiennej*/
modulo=modulo*10;
}
potega=pow(z,2);
zpot=potega%modulo; //otrzymuje reszte z dzielenia
if(z==zpot) wynik=1; //zwracanie wartosci logicznej 0 lub 1
else wynik=0;
return wynik;
}
int main(){
int a;
printf("Wprowadz liczbe ktora chcesz sprawdzic czy jest automorficzna:\n");
scanf("%i", &a);
while(a<1){
printf("Liczba musi nalezec do zbioru l. Naturalnych!\nWprowadz ponownie:\n");
scanf("%i", &a);
}
if(1==czy_automorficzna(a)) printf("Liczba jest automorficzna\n"); /* sprawdzam czy wprowadzona liczba jest rowna reszcie z dzielenia potegi tej liczby*/
else printf("Liczba nie jest automorficzna\n");
return 0;
}