
paulo1205
(usa Ubuntu)
Enviado em 24/09/2017 - 16:29h
João Melo escreveu:
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
int main() {
int function[10][10]={};
Você declarou uma matriz cujos índices, em ambas as dimensões, podem variar de
0 a
9 (dez valores ao todo, portanto). No entanto, seus
loops têm índices que variam de
0 a
10 (onze valores), extrapolando o espaço de memória alocado para a matriz. Isso é um problema gravíssimo.
int b = 0;
int c;
for(int x=0; x<=10; x++){
b++;
Se esse
b é sempre igual a
x+1, por que usar essa segunda variável? Por que não fazer simplesmente
c+=x+1?
c += b;
for(int y=0; y<=10; y++){
string end = (y<9) ? ", " : "endl";
Tem certeza de que você quer o texto “
endl” atribuído à variável
end? Será que você não gostaria de, simplesmente, atribuir “
\n” a essa variável?
function[x][y] = c + y;
cout << function[x][y] << end;
}
}
system ("pause");
return 0;
}
O resultado tem saído lixo de memória, e não resultados como deveria. Intrigante é que se eu eliminar a função ternária, ele funciona normalmente. Qualquer coisa faço upload no Github. Obrigado desde já !