PDA

Prikaži potpunu verziju : Množenje u C-u


gavrilo
9.10.2012, 19:54
Zadatak je da izracunam sumu kvadrata cifara cetvorocifrenog broja. E sad, javlja se greska ako su promenljive float, tako da sa float promenljivom ne mogu da razdvojim cifre, a ako su intidzer, ne mogu da koristim pow() jer parametri treba da budu floatovi. Mislim da sam probao i sa mnozenjem umesto kvadrata ali prijavljuje gresku. Od skoro radim C, pa ako moze neko da ispise program dobro bi mi doslo.

Kod za razdvajanje cifara :

#include<stdio.h>
#include<math.h>
void main(){

int a,b,c,d,n;
printf("unesi cetvorocifreni broj\n");
scanf("%d",&n);
d = n%10; //2634 abcd;
c = (n/10)%10;
b = (n/100)%10;
a = n/1000;
}

voodoo_
9.10.2012, 19:57
pow(a * 1.0, b * 1.0) ?

gavrilo
9.10.2012, 20:09
Ha, ne znam sta mu bi, sad radi, hvala :)


#include<stdio.h>
#include<math.h>
void main(){

int a,b,c,d,n;
printf("unesi cetvorocifreni broj\n");
scanf("%d",&n);
d = n%10; //2634 abcd;
c = (n/10)%10;
b = (n/100)%10;
a = n/1000;
float z = pow(a * 1.0, 2 * 1.0)+pow(b * 1.0, 2 * 1.0)+pow(c * 1.0, 2 * 1.0)+pow(d * 1.0, 2 * 1.0); ;

printf("suma kvadrata cifara broja je:%f\n",z);
}

Kosinus
9.10.2012, 21:17
Не мораш позивати функцију pow. Ево још једног начина који ради и за бројеве који нису четвороцифрени:

#include <stdio.h>

int main( )
{
unsigned long long n;
unsigned short sum = 0;

printf( "Unesi broj:\n" );
scanf( "%llu", &n );

while( n )
{
sum += ( n % 10 ) * ( n % 10 );
n /= 10;
}

printf( "Suma kvadrata cifara broja je: %hu\n", sum );

return 0;
}

PeTkO
10.10.2012, 10:57
@offtopic

Gavro, slusaj malo vise onog asistenta sta prica. Lepo covek objasnio kako se koristi pow funkcija :)

Pozdrav od kolege :)

@ontopic

Da, moze i sa while, ali bilo nam je zabranjeno.
U sustini, najjednostavniji nacin je da se broj podeli na cifre i da se cifre samo izmoze same sa sobom, npr: a*a + b*b itd...

MG-RAY
10.10.2012, 23:10
__=12345,_;main(){_+=(__-10*(__/10))*(__-10*(__/10));__/=10;return __==0?_:main();}


Nema while... :a_whistli

PeTkO
11.10.2012, 2:31
@MG-RAY

Killing me softly with that code, killing me softly... :)

Btw, sta je ovo? Daj malo vise informacija, prvi put vidim ovako nesto

ivan90BG
11.10.2012, 9:31
U C-u ne mora da se navede tip globalnih promenljivih i funkcija. Podrazumava se da je tip int. Dve donje crte su dozvoljene kao ime simbola. Znači ima globalna promenljiva int __ = 12345, još jedna g.p. int _ i funkcija int main(). On tu nešto radi sa tim promenljivama, a posle ako je __ jednaka vraća _, a ako nije rekurzivno poziva main() imitirajući petlju.

PeTkO
11.10.2012, 11:06
I meni je tako nesto palo na pamet, ali nisam bio siguran.

Ali ovo je netacan zadatak. Trazi se ulaz broja, a ovde nije ubacena scanf funkcija :P

MG-RAY
11.10.2012, 12:06
^ "...exercise for the reader..." :D

Futuristic
10.12.2012, 23:34
@ MG-RAY post #6:
Promenljiva _ ima inicijalnu vrednost 0 ?

MG-RAY
10.12.2012, 23:43
Da, u C-u se promenjive van funkcija inicijalizuju na 0.

Futuristic
11.12.2012, 0:09
Mislis samo one u global scope?

MG-RAY
11.12.2012, 11:39
Da, baš to.