Heim > Backend-Entwicklung > C++ > Hauptteil

Drucken Sie in einem C-Programm nach der Durchführung mehrerer Array-Bereichserhöhungsoperationen das geänderte Array aus

王林
Freigeben: 2023-09-13 23:49:02
nach vorne
1449 Leute haben es durchsucht

Drucken Sie in einem C-Programm nach der Durchführung mehrerer Array-Bereichserhöhungsoperationen das geänderte Array aus

Gegeben sei ein Array arr[m] mit m Ganzzahlen und n (Werte, die dem Array hinzugefügt werden sollen) und r Abfragen mit Start und Ende. Für jede Abfrage müssen wir die Werte n vom Anfang bis zum Ende des Grenzwerts im Array hinzufügen.

Beispiel

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 }
Nach dem Login kopieren

Dieses Programm kann mit einem einfachen Ansatz gelöst werden, bei dem -

  • Wir alle Abfragen durchlaufen, beginnend vom Startpunkt der Abfrage und durch das Array bis zum in der Abfrage gespeicherten Endpunkt.
  • Fügen Sie den Wert von n hinzu und drucken Sie das Array aus.

Algorithmus

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
Nach dem Login kopieren

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

Wenn wir das obige Programm ausführen, wird die folgende Ausgabe generiert:

Query 1: 5 6 10 1 10
Query 2: 5 8 12 3 10
Query 3: 5 8 12 5 12
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDrucken Sie in einem C-Programm nach der Durchführung mehrerer Array-Bereichserhöhungsoperationen das geänderte Array aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage