Witam, mam problem odnośnie programu, gdzie po odpaleniu konsoli i wpisaniu wartości pojawia sie komunikat Program "Nazwa projektu".exe przestał działać. Po zamknięciu tego konsola zostaje i wszystko wylicza poprawnie z tego co zauważyłem, ale tylko do podania liczby z max. 10 cyfr, gdy podaje się liczbę z 11 cyfr już poprawnie nie wylicza.
Załączam kod (język C), nie mam pojęcia gdzie może być błąd. Z góry dziękuję za wszystkie odpowiedzi.
#include <stdio.h>
#include <stdlib.h>
#define DLUGOSC 1000
int ileCyfr(int x)
{
int licznik=0;
while(x!=0)
{
licznik++;
x/=10;
}
return licznik;
}
int sumaCyfr(int x)
{
int suma=0;
while(x!=0)
{
suma+=x%10;
x/=10;
}
return suma;
}
char* czyParzysta(int x)
{
int i,reszta,n=ileCyfr(x);
int tab[DLUGOSC];
for(i=n-1;i>=0;i--)
{
reszta = x%10;
tab[i]=reszta;
x=x/10;
}
for(i=0;i<n;i++)
{
printf("%d - ",tab[i]);
(tab[i]%2==0)?(printf("parzysta")):(printf("nieparzysta"));
printf(", kwadrat = %d\n", kwadrat(tab[i]));
}
}
int kwadrat(int x)
{
return x * x;
}
int glowna(int a)
{
printf("Podana liczba %d sklada sie z %d cyfr, a ich suma wynosi %d.\n",a,ileCyfr(a),sumaCyfr(a));
printf("Kolejne cyfry:\n");
printf("%s",czyParzysta(a));
return 0;
}
int main()
{
int n;
printf("Podaj liczbe calkowita: ");
scanf("%d",&n);
glowna (n);
return 0;
}