Guide for Escriu en un Array (4)


This is a guide to help you get started on this problem — it is not the solution.

Com abordar aquest problema

Se't dona un array de mida \(K\) i un valor \(N\). Has de sumar \(N\) a CADA element de l'array i després \ imprimir l'array modificat sencer.

Idea general:

  1. Llegeix \(K\) i després els \(K\) valors de l'array (un primer bucle, només per llegir).
  2. Llegeix \(N\).
  3. Amb un segon bucle, recorre l'array i suma \(N\) a cada posició (modificant l'array en el propi lloc).
  4. Un cop modificat tot l'array, imprimeix-lo sencer, amb espais entre els valors.

Paranys habituals:

  • Com diu l'enunciat, cal fer-ho amb DOS bucles separats: un per llegir i un altre per modificar. No \ funciona bé si intentes sumar \(N\) mentre encara l'estàs llegint (encara no el coneixes en aquell punt).
  • No creïs un array nou per als resultats si no cal: pots modificar directament les posicions de \ l'array original.

Pista per a Java

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int k = Integer.parseInt(sc.nextLine().trim());

        StringTokenizer st = new StringTokenizer(sc.nextLine());
        int[] array = new int[k];
        for (int i = 0; i < k; i++) {          // bucle 1: llegir
            array[i] = Integer.parseInt(st.nextToken());
        }

        int n = Integer.parseInt(sc.nextLine().trim());

        for (int i = 0; i < k; i++) {          // bucle 2: modificar
            array[i] += n;
        }

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < k; i++) {
            if (i > 0) sb.append(" ");
            sb.append(array[i]);
        }
        System.out.println(sb.toString());
    }
}

Els dos for són independents: el primer omple l'array, el segon el modifica un cop ja saps \(N\).


Back to problem