Guide for Escriu en un Array (4)
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:
- Llegeix \(K\) i després els \(K\) valors de l'array (un primer bucle, només per llegir).
- Llegeix \(N\).
- Amb un segon bucle, recorre l'array i suma \(N\) a cada posició (modificant l'array en el propi lloc).
- 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\).