Maison  >  Article  >  développement back-end  >  Dans un programme C, après avoir effectué plusieurs opérations d'incrémentation de plage de tableau, imprimez le tableau modifié

Dans un programme C, après avoir effectué plusieurs opérations d'incrémentation de plage de tableau, imprimez le tableau modifié

王林
王林avant
2023-09-13 23:49:021397parcourir

Dans un programme C, après avoir effectué plusieurs opérations dincrémentation de plage de tableau, imprimez le tableau modifié

Étant donné un tableau arr[m] contenant m entiers et n (valeurs à ajouter au tableau) et r requêtes étant donné un début et une fin. Pour chaque requête, nous devons ajouter les valeurs n du début à la fin de la limite dans le tableau.

Exemple

Input:
arr[] = {1, 2, 3, 4, 5}
query[] = { { 0, 3 }, { 1, 2 } }
n = 2
Output:
If we run above program then it will generate following output:
Query1: { 3, 4, 5, 6, 5 }
Query2: { 3, 6, 7, 6, 5 }

Ce programme peut être résolu avec une approche simple où -

  • Nous allons parcourir toutes les requêtes en commençant par le point de départ de la requête et en parcourant le tableau jusqu'au point final stocké dans la requête.
  • Ajoutez la valeur de n et imprimez le tableau.

Algorithme

START
STEP 1 : DECLARE A STRUCT range for start AND end LIMITS
STEP 2 : IN FUNCTION add_tomatrix(int arr[], struct range r[], int n, int size, int m)
   int i, j, k;
   LOOP FOR i = 0 AND i < m AND i++
      LOOP FOR j = r[i].start AND j<= r[i].end AND j++
         arr[j] = arr[j] + n
      END FOR
      LOOP FOR k = 0 AND k < size AND k++
         PRINT arr[k]
      END FOR
   END FOR
STOP

Exemple

#include <stdio.h>
struct range{
   int start, end; //struct to give the range for the array elements
};
int add_tomatrix(int arr[], struct range r[], int n, int size, int m){
   int i, j, k;
   for ( i = 0; i < m; i++) //for all the elements in a struct we defined{
      for(j = r[i].start; j<= r[i].end; j++) //from where till where we want our results to be updated{
         arr[j] += n; //add the value of the particular range
      }
      printf("Query %d:", i+1);
      for ( k = 0; k < size; k++){
         printf(" %d",arr[k]); // print the whole array after every query
      }
      printf("</p><p>");
   }
}
int main(int argc, char const *argv[]){
   int arr[] ={3, 4, 8, 1, 10};
   struct range r[] = {{0,2}, {1, 3}, {3, 4}};
   int n = 2;
   int size = sizeof(arr)/sizeof(arr[0]);
   int m = sizeof(r)/sizeof(r[0]);
   add_tomatrix(arr, r, n, size, m);
   return 0;
}

Sortie

Si nous exécutons le programme ci-dessus, il générera la sortie suivante -

Query 1: 5 6 10 1 10
Query 2: 5 8 12 3 10
Query 3: 5 8 12 5 12

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer