Tja!
Jag läser C och skulle behöva lite hjälpt med en uppgift.
* användaren som mata in valfritt antal heltal mellan intervallet 0-1000 men max 100 tal får matas in. inmatningen avsluts genom att mata in ett negativt tal.
*Funktionen i programmet ska beräkna vilket av de inmatade heltalen som förekommer flest gånger samt hur många gånger detta tal finns med i arrayen. Eftersom funktionen ska beräkna två resultat så behöver variablerna där resultatet ska sparas skickas in som pekare till funktionen.
Här är min kod som jag har skrivit:
Citat:
#include<stdio.h>
#define MAX 1000
void FrekvensAnalys(int tal[], int i, int *number, int *occurances)
{
int counters[MAX];
int k, max, val, counter_nr;
for (k=0; k<i; k++)
{
counter_nr=tal[k];
counters[counter_nr]++;
}
val = 0;
max = counters[0];
for (k=1; k<MAX; k++)
{
if (counters[k] > val)
{
val = k;
max = counters[k];
}
}
*number= val;
*occurances = max;
}
int main (void)
{
char svar='j';
do
{
int tal[100];
int number, occurances;
int varde;
printf("\nMata in tal mellan 0-1000 (max 100st). Avsluta med ett negativt tal.\n");
do
{
printf("Tal:");
scanf("%d", &varde);
} while (varde>=0);
FrekvensAnalys(tal, i, &number, &occurances);
printf("Talet %d forekommer flest gonger, totalt %d ggr", number, occurances);
printf("\nVill du mata in en ny sekvens j/n?:");
scanf("%s",&svar);
} while (svar=='j');
return 0;
}
Min fråga är vad har jag gjort för fel, den skriver inte ut vilket tal som förekommer flest och inte hur många gånger heller.