
03-06-2007, 21:06
|
|
|
|
חבר מתאריך: 16.09.05
הודעות: 196
|
|
|
שפת C - תוכנית
מישהו בבקשה מוכן להסביר לי מה לא בסדר בתוכנית שלהלן? אני כבר שעתיים יושב עליה ולא מבין איזו טעות עשיתי שמונעת מהתוכנית לפעול כמו שצריך...אני כבר משתגע לגמרי  ((
הנה התוכנית...
#include <stdio.h>
#include <conio.h>
int keletnetunim (int kizuz[1000], int density[1000]);
void maxkizuz(int k, int kizuz[1000], int density[1000]);
void avgdensity (int k, int kizuz[1000], int density[1000]);
int checkrezev(int k, int kizuz[1000]);
void printrezev(int log);
void main (void)
{
int k,log,density[1000],kizuz[1000];
k=keletnetunim(density, kizuz);
maxkizuz(k,kizuz, density);
avgdensity(k,density,kizuz);
log=checkrezev(k,kizuz);
printrezev(log);
getch();
}
int keletnetunim (int kizuz[1000], int density[1000])
{
int n,k=0,i;
for (i=0; i<4; i++)
{
printf ("give n=");
scanf ("%d", &n);
if (n<1000 || n>9999)
printf ("invalid");
else
{
density[k]=n/100;
kizuz[k]=n%100;
k=k+1;
}
}
k=k-1;
return k;
}
void maxkizuz(int k, int kizuz[1000], int density[1000])
{
int i,max=0;
for (i=0; i<=k; i++)
{
if (kizuz[i]>=max)
{
max=kizuz[i];
k=i;
}
};
printf ("%d", density[k]);
}
void avgdensity (int k, int kizuz[1000], int density[1000])
{
int i;
float mone=0,average,sum=0;
for (i=0; i<=k; i++)
{
if (kizuz[i]>20)
{
sum=sum+density[i];
mone=mone+1;
}
};
average=sum/mone;
printf ("avg=%f", average);
}
int checkrezev(int k, int kizuz[1000])
{
int R,log=0,i;
for (i=0; i<=k-4; i++)
{
R=kizuz[i];
if (R==kizuz[i+1] && R==kizuz[i+2] && R==kizuz[i+3])
log=1;
};
return log;
}
void printrezev (int log)
{
if (log)
printf ("yes");
else
printf ("no");
}
|