When I compile my code, I get a SigSegv error. What caused this? What needs to be changed so that the error disappears?
#include <iostream> #include<math.h> #include<stdio.h> #include<stdlib.h> #include<cstdlib> #include<conio.h > int main() { const int n=20; int i,massiv[i], Xmax=0, Nmax; printf("Spisok chisel v massive"); for(int i=0; i<n; i++) { massiv[i]=(std::rand() % 200)-100; printf ("\nmassiv[%i]={%i}",i,massiv[i]); } //---------------------------- for (int i=1; i<n;i++) if (massiv[i]<0 && massiv[i]> Xmax) //??? (massiv[i] > massiv[Nmax]) { Xmax = massiv[i]; Nmax = i; } else; printf("Maximalvoe otritsatelnoe chislo"); printf("Xmax=%i,Xmax"); printf (" at index "); printf("Nmax=%i,Nmax"); getchar(); } Here is the second code, everything works
#include<math.h> #include<stdio.h> #include<iostream> #include<stdlib.h> #include<cstdlib> int main() { int i; const int n=20; float result = 1.0; int massiv[n]; for( int i=0; i<n; i++) { massiv[i] = (std::rand() % 200)-100; } for( int i=0; i<n;i++) { if(massiv[i] >1) result *= massiv[i]; else; } printf("\nMassiv soderzhit dannie chisla"); for( int i=0; i<n;i++) { printf ("\nmassiv[%i]={%i}",i,massiv[i]); } printf("\nProizvedenie vseh polozhitelnih chisel massiva ravno ") ; printf("\nresult=%5.0f",result); getchar(); }