Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

[Dúvida] Onde eu errei

#include<stdio.h>

void soma(){

int numeros[10];

numeros[0]=1;
numeros[1]=2;
numeros[2]=3;
numeros[3]=4;
numeros[4]=5;
numeros[5]=6;
numeros[6]=7;
numeros[7]=8;
numeros[8]=9;
numeros[9]=10;

int somar = 0;

for (int i = 0; i <= numeros[9]; i++){

    somar = numeros[i] + somar;

}

printf("%d",somar);

}

int main(){

soma();

}

1 resposta

Oi, João! Como vai?

O problema pode estar nesse ponto do for. Você está usando i <= numeros[9], mas isso faz o loop rodar até o valor 10, e o array só tem índices de 0 a 9. Isso gera acesso indevido à memória.

Resolva fazendo o seguinte: troque a condição do laço para i < 10, assim ele percorre todos os elementos corretamente.

Veja este exemplo:


#include <stdio.h>

void soma(){

    int numeros[10];

    numeros[0]=1;
    numeros[1]=2;
    numeros[2]=3;
    numeros[3]=4;
    numeros[4]=5;
    numeros[5]=6;
    numeros[6]=7;
    numeros[7]=8;
    numeros[8]=9;
    numeros[9]=10;

    int somar = 0;

    for (int i = 0; i < 10; i++){
        somar = numeros[i] + somar;
    }

    printf("%d", somar);
}

int main(){
    soma();
}

Versão sem acentuação:


#include <stdio.h>

void soma(){

    int numeros[10];

    numeros[0]=1;
    numeros[1]=2;
    numeros[2]=3;
    numeros[3]=4;
    numeros[4]=5;
    numeros[5]=6;
    numeros[6]=7;
    numeros[7]=8;
    numeros[8]=9;
    numeros[9]=10;

    int somar = 0;

    for (int i = 0; i < 10; i++){
        somar = numeros[i] + somar;
    }

    printf("%d", somar);
}

int main(){
    soma();
}

Esse código soma todos os valores do array numeros e imprime o resultado corretamente.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado