2015-05-12, 21:49
  #1
Medlem
smellyproofs avatar
Här är en kod som tar bort element ur en array
Kod:
#include <stdio.h>
 
int main()
{
   int array[100], position, c, n;
 
   printf("Enter number of elements in array\n");
   scanf("%d", &n);
 
   printf("Enter %d elements\n", n);
 
   for ( c = 0 ; c < n ; c++ )
      scanf("%d", &array[c]);
 
   printf("Enter the location where you wish to delete element\n");
   scanf("%d", &position);
 
   if ( position >= n+1 )
      printf("Deletion not possible.\n");
   else
   {
      for ( c = position - 1 ; c < n - 1 ; c++ )
         array[c] = array[c+1];
 
      printf("Resultant array is\n");
 
      for( c = 0 ; c < n - 1 ; c++ )
         printf("%d\n", array[c]);
   }
 
   return 0;
} 

Det är främst den fetstilade biten som ska ta bort elementet. Men jag läser det som att det definierar det elementet som samma som nästa element i arrayen. Så hur kan den koden ta bort elementet? Vad är det som händer här?
Citera
2015-05-12, 21:57
  #2
Medlem
Alla element efter det du vill tas bort flyttas ett steg tidigare i arrayen, på så vis kommer elementet som ska tas bort skrivas över av det efter osv. Om du ändrar n - 1 till bara n i din sista loop kommer du se att sista elementet finns två gånger då det aldrig nollställs.
Citera
2015-05-12, 23:49
  #3
Medlem
smellyproofs avatar
Citat:
Ursprungligen postat av AVGASBARN
Alla element efter det du vill tas bort flyttas ett steg tidigare i arrayen, på så vis kommer elementet som ska tas bort skrivas över av det efter osv. Om du ändrar n - 1 till bara n i din sista loop kommer du se att sista elementet finns två gånger då det aldrig nollställs.
I see, då kan jag använda det här till mitt program. Det där med att den sista aldrig nollställs är en bug jag får leva med.
Citera
2015-05-13, 21:32
  #4
Medlem
Nereons avatar
Citat:
Ursprungligen postat av smellyproof
I see, då kan jag använda det här till mitt program. Det där med att den sista aldrig nollställs är en bug jag får leva med.

I så fall blir det bättre att använda en vector.
Citera
2015-05-14, 00:43
  #5
Medlem
Citat:
Ursprungligen postat av Nereon
I så fall blir det bättre att använda en vector.

Han har inte tillgång till stl. Finns alternativa libs han kan använda sig av i C men eftersom att templates inte finns i C blir det någon mellanmjölks variant
__________________
Senast redigerad av newone 2015-05-14 kl. 00:55.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in