Ужасно ме нервира што нејќе да се уклучи кодот!
Ја сфатив задачата. Но нешто нејќе да ги прикаже броевите.
Дали има грешка во кодот. Задачата гласи вака.
1)
Да се напише програма која ќе ги отпечати сите природни броеви помали од
10000 кои го имаат следното својство: карактеристичната збир цифра и
карактеристичната производ цифра им се исти. Карактеристична збир цифра за
даден број се добива кога ќе се соберат цифрите на дадениот број. Ако при ова се
добие повеќецифрен број, постапката се повторува (повторно се собираат
цифрите на новодобиениот број), сé додека не се добие едноцифрен број.
Карактеристична производ цифра за даден број се добива кога ќе се помножат
цифрите на дадениот број. Ако се добие повеќецифрен број, постапката се
повторува (повторно се множат цифрите на новодобиениот број), сé додека не се
добие едноцифрен број.
Пример: 22 → 2+2=4=2*2
726 → 7+2+6=15 → 1+5=6
7*2*6=84 → 8*4=32 → 3*2=6
Кодот во скриптата изгледа вака.
PHP:
#include<stdio.h>
int kzcif(int x);
int kcifra1(int x);
int kpcif(int x);
int kcifra2(int x);
void main()
{
int b=0,i;
for(i=1;i<=9999;i++)
if (kcifra1(i)==kcifra2(i))
{
printf("%d\n",i);
b++;
}
printf("Vkupno: %d",b);
getchar();
}
int kzcif(int x)
{ int kcif;
if (x<=9) kcif=x;
else kcif=(x%10)+kzcif(x/10);
return kcif;
}
int kcifra1(int x)
{ int kcifra,s;
s=kzcif(x);
if (s<=9) kcifra=s;
else kcifra=kcifra1(s);
return kcifra;
}
int kpcif(int x)
{ int kcif;
if (x<=9) kcif=x;
else kcif=(x%10)*kpcif(x/10);
return kcif;
}
int kcifra2(int x)
{ int kcifra,p;
p=kpcif(x);
if (p<=9) kcifra=p;
else kcifra=kcifra2(p);
return kcifra;
}
При што истиот нејќе да се компајлира. Односно.
C:\Dev-Cpp\daadad.c In function `main':
7 C:\Dev-Cpp\daadad.c [Warning] return type of 'main' is not `int'
Изгледа прави проблеми тоа Void main() , i getchar() na kraj.
па јас кодот си го преформулирав со мои термини, за полесен привид и со int main, i return на крај.
и .. го компајлира овој пат без пронајдени грешки, но нејќе да го уклучи односно тоа трае една милисекунда и се гаси.
Кодот појасен изгледа вака.
PHP:
#include<stdio.h>
int suma(int x);
int scifra(int x);
int proz(int x);
int pcifra(int x);
int main()
{
int i,br=0;
printf("Broevi so ednakvi karakteristicni cifri na suma i proz : \n\n");
for(i=1;i<=9999;i++)
{
if(scifra(i)==pcifra(i))
{
printf("%d \n");
br++;
}
}
printf("Ima vkupno %d takvi broevi \n\n");
system("pause");
return 0;
}
int suma(int x)
{
int zbir;
if(x<=9)
zbir=x;
else
zbir=(x%10)+suma(x/10);
return zbir;
}
int scifra(int x)
{
int cifra,s;
s=suma(x);
if(x<10)
cifra=s;
else
cifra=scifra(x);
return cifra;
}
int proz(int x)
{
int prez;
if(x<10)
prez=x;
else
prez=(x%10)*proz(x/10);
return prez;
}
int pcifra(int x)
{
int cifra,s;
s=proz(x);
if(x<10)
cifra=s;
else cifra=pcifra(x);
return cifra;
}
некој знае зошто не работи ?
--- надополнето: 29 јули 2012 во 13:54 ---
Прва година гимназија.
која е таа гимназија бе, ние у прва Office учевме
--- надополнето: 29 јули 2012 во 14:11 ---
офффффффффффффф
Ги најдов грешките...
Место cifra=scifra(s) jas cifra=scifra(x).
и други такви глупи грешки.
Еве го точниот код.
PHP:
#include<stdio.h>
int suma(int x);
int scifra(int x);
int proz(int x);
int pcifra(int x);
int main()
{
int i,br=0;
printf("Broevi so ednakvi karakteristicni cifri na suma i proz : \n\n");
for(i=1;i<=9999;i++)
{
if(scifra(i)==pcifra(i))
{
printf("%d \n",i);
br++;
}
}
printf("Ima vkupno %d takvi broevi \n\n",br);
system("pause");
return 0;
}
int suma(int x)
{
int zbir;
if(x<=9)
zbir=x;
else
zbir=(x%10)+suma(x/10);
return zbir;
}
int scifra(int x)
{
int cifra,s;
s=suma(x);
if(x<10)
cifra=s;
else
cifra=scifra(s);
return cifra;
}
int proz(int x)
{
int prez;
if(x<10)
prez=x;
else
prez=(x%10)*proz(x/10);
return prez;
}
int pcifra(int x)
{
int cifra,s;
s=proz(x);
if(x<10)
cifra=s;
else cifra=pcifra(s);
return cifra;
}