Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C++] nessun output

  1. #1

    [C++] nessun output

    Salve, sono nuovo e sto imparando il C++ e spero che ciò che sto per chiedere non sia fuori regolamento (l'ho letto e non so o sicuro di essere nella ragione, nel caso cancellerò il post)

    In questo piccolo codice il risultato che vorrei ottenere è che il programma dopo che io li do un valore lui restituisca i valori multipli della array. Esempio Array[13] se l'nput è 5 il programma deve restituirmi il 5° e 10° valore della array. Purtroppo non ricevo nessun output.. Ho provato a cambiare la sintassi al codice pensando fosse un problema del loop for e quindi ho sostituito con while ma niente.. Vi lascio il codice qua sotto

    codice:
    #include <iostream>
    #include <string>
    using namespace std;
    
    
    void winners(string arr[], int size, int n) 
    {
        for(int x= 0; x<size; x++)
        {
            int a = x%n;
            if(a = 0)
            {
                cout << arr[x--] << endl;
            }
        }   
        
        // questa è una delle mie varianti per trovare il problema
        
        int x=size;
        while(x>0)    
        {
            int a = x % n;
            if(a = 0)
            {
                cout << arr[x] << endl;
                x--;
            }
            else
            {
                x--;
            }
        }*/
        
    }
    int main() {
    
        string customers[] = {"Alice", "Bob", "Rayan", "Emma", "Ann", "Bruce", "Synthia", "Daniel", "Richard", "Sam", "Nick", "Mary", "Paul"};
    
        int n;
        cin >> n;
        winners(customers, 13, n);
        return 0;
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Il primo errore che mi è saltato all'occhio è questo (ripetuto almeno 2 volte):

    codice:
    if (a = 0) {

    Quello non è un confronto, ma un'assegnazione: stai assegnando ad "a" il valore 0. Questo ha due effetti:

    1) Modifica il valore di a
    2) L'espressione assume il valore più a destra, ovvero 0: per definizione 0 è FALSO, quindi non entra mai nel corpo dell'if.

    I confronti si fanno con == (doppio segno uguale).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Cavolo, ho fatto un errore stupidissimo e non l'ho visto nonostante l'abbia riletto 100 volte

    Alla fine ho corretto la cavolata, era uscito un altro problema di loop infinito ma ho risolto tutto così
    codice:
    void winners(string arr[], int size, int n) 
    {
        for(int x= 1; x<size; x++)
        {
            int a = x%n;
            int b = x-1;
            if(a == 0)
            {
                cout << arr[b] << endl;
            }
        }
    Ultima modifica di Int Alex; 31-12-2020 a 13:43

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.