Maison > développement back-end > C++ > 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é

王林
Libérer: 2023-09-13 23:49:02
avant
1458 Les gens l'ont consulté

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 }
Copier après la connexion

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
Copier après la connexion

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;
}
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal