#include <stdio.h>
#define DIM 50
int main()
{
while(1){double a[DIM],b[DIM],skal_pro;
int i,n;
printf("\nDuzina vektora(najvise%d):",DIM);
scanf("%d",&n);
if(n<=0 || n>DIM)
break;
printf("Komponente vektora A:");
for(i=0;i<n;scanf("%lf",&a[i++]));
printf("Komponente vektora B:");
for(i=0;i<n;scanf("%lf",&b[i++]));
for(skal_pro=i=0;i<n;i++)skal_pro+=a*b;
printf("Skalarni proizvod A*B:%10.3f\n",skal_pro);
}
return 0;
}
ovaj program računa skalarni proizvod dva vektora,inače primer iz knjige Lasla Krausa izdanje 2006.Jasno mi je sve šta se tu dogadja osim jedne stvari.
Pokušao sam da ga modifikujem tako da mi javi poruku o pogrešno izabranom n iz if naredbe.To sam uradio tako što sam stavio printf izmedju if i break.
Kada stavim n koje je manje od nula ili veće od DIM program mi lepo javlja poruku preko printf naredbe,ali kada unesem korektno n od 1 do 50 program se
prekine sa porukom proces returned......
Zanima me da mi neko objasni zašto se ovo dogadja ili ako je jednostavnije da napiše kod koji će raditi a ja ću već shvatiti gde grešim.
Hvala!