Sida 1 av 1

Programmeringsbekymmer

Postat: 07 dec 2007, 13:30
av Aluhuru
Hej!
Nu är det så att jag har en uppgift i C-programmering som ska utföras, men jag FATTAR INTE hur jag ska lösa den och jag ligger långt efter de uppgifter som jag ska hålla på med. Skulle någon kunna ta sig lite tid att förklara hur jag ska gå till väga? Kanske gasol kan försöka förklara för mig...
---------------------------------------------------
Skriv in ett program som läser in 10 heltal i en array. Programmet ska därefter fråga vilket tal som ska identifieras och därefter söka efter antalet förekomster av detta heltal i arrayen.
Exempel. Talen 5,7,3,9,1,89,16,1,9,7 matas in och därefter ska talet '9' matas in för att efterfrågas och han ska svara att "talet 9 förekommer 2 gånger".
------------------------------------
Hoppas någon kan ge mig en liten vägledning om hur jag ska göra.

SV: Programmeringsbekymmer

Postat: 07 dec 2007, 14:13
av gasol
Tjena, det borde gå ganska snabbt att lösa ditt problem.

Med scanf så kan du läsa in tal. Det fungerar precis som med printf

Kod: Markera allt

scanf(const char *format, ...);
läser in ett heltal från användaren

Kod: Markera allt

int tal;
scanf("%d", &tal);
Sedan gör du detta 10 gånger och sparar detta i en array. Arrayer deklareras på detta sätt

Kod: Markera allt

int mina_tal[10];
talet inom klammerparenteserna säger hur stor din array är, eller hur många tal som ska få plats i den.

För att göra en tilldelning så skriver du såhär:

Kod: Markera allt

mina_tal[3] = tal;
Men kom ihåg att indexet dvs 3:an i det här fallet börjar från 0!

så du har mina_tal[0], mina_tal[1] osv upp till mina_tal[9].

Sedan så kan du bara skriva en loop som kollar hur många gånger det sista talet ligger i din array.

SV: Programmeringsbekymmer

Postat: 07 dec 2007, 15:16
av Aluhuru
Hej, och tack för ett snabbt svar.
Nu är jag dålig på att förstå men är det ungefär så här som du menade?

Kod: Markera allt

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
  /* Declare your variables here... */
  int inlastaTal, inlastaTalen[10];
  
  printf("Mata in 10 heltal");
  for(inlastaTal=0;inlastaTal<10;inlastaTal++)
  {
   scanf("%d", &inlastaTalen[inlastaTal);
  }
  printf("Vilket tal ska efterfrågas? > ");
  inlastaTalen[inlastaTal] = inlastaTal;
  //Loopen här?
  system("PAUSE");
  return 0;
}
Jag använder även boken "Problem Solving in C", men ändå så förstår jag inte till fulla det här med funktioner, arrayer och pekare.

Mvh. Joakim

SV: Programmeringsbekymmer

Postat: 07 dec 2007, 15:22
av gasol

Kod: Markera allt

int main(void)
{
  /* Declare your variables here... */
  int inlastaTal, inlastaTalen[10], int ett_tal;
  
  printf("Mata in 10 heltal");
  for(inlastaTal=0;inlastaTal<10;inlastaTal++)
  {
   scanf("%d", &inlastaTalen[inlastaTal); <---- du har missat ett ] här
  }
  printf("Vilket tal ska efterfrågas? > ");
  scanf("%d", &ett_tal)

   for(inlastaTal=0;inlastaTal<10;inlastaTal++)
  {
      // här kollar du om det sista talet du läste in finns i listan med inlästa tal
      if(inlastaTalen[inlastaTal] == ett_tal) {
                // räkna hur många gånger "ett_tal" finns i listan inlastaTalen och skriv ut det
      }
  }

  system("PAUSE");
  return 0;
}