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