2014-10-01 5 views
-2

Получение проблемы с возвратным (огромным) значением. Я уже проверил на enthernet, но ничего не нашел :(Надеясь, что здесь я мог бы найти ответ на мой вопрос. Я просто новичок, так что трудно сделать что-то правильно, если вы не знаете, что это неправильно ((Проблемы с возвращаемым значением C

#include <stdio.h> 
#include <math.h> 


void MasivaIzveide (int *masivs, int x) 
{ 
int i, reiz,n1,n2; 

srand(time(NULL)); 
/* nosaka cik elementu masiva bus */ 
printf("Ievadi, divus masiva emelentus, kuri bus '0' starp kuram bus summa\n\n"); 
printf("\n Pirmais elements="); 
scanf("%d", &n1); 
printf("\n Otrais elements="); 
scanf("%d", &n2); 




    for (i = 0; i < x; i++) 
{ 

    masivs[ i ] = rand() % 200-100 ; /* random vertibas katram masiva skaitlim*/ 
    masivs[n1]= 0; 
    masivs[n2]=0; 
    printf("Loceklis[%d] = %d\n", i, masivs[i]); 
    } 



return; 
} 



void Reizinajums (int *masivs, int x) { 
int i, reiz; 
reiz=masivs[2]; 
for (i=4; i < x; i=i+2) { 
reiz=reiz*masivs[i] ; 
} 
printf("\n\nReizinajums ir %d\n\n\n\n ", reiz); 
return; 
} 
void main(){ 
int i,j,s; 
int masivs[i]; 
printf("Tiks izveidots masiivs\n\n\n\n"); 
MasivaIzveide(masivs,15); 
Reizinajums(masivs,15); 
return; 
} 

проблема заключается в линии (Reiz = Reiz * masivs [I];) Я использую указатели как хорошо Спасибо за помощь

+0

Что происходит? Я предполагаю, что он компилируется. Что происходит, когда он работает? –

+1

Все ваши функции возвращают 'void' (что для' main' является ошибкой). Итак, что вы подразумеваете под «огромной возвращаемой стоимостью»? – 5gon12eder

ответ

2

Это ошибка:

int i,j,s; 
int masivs[i]; 

Вы объявляете masivs.. с размером i, но это неинициализированная переменная. Это вызывает неопределенное поведение. Возможно, вы имели в виду:

int masivs[15]; 

Вы должны также проверить, что n1 и n2 находятся в правильном диапазоне, прежде чем использовать их в качестве индексов массива.

+0

Спасибо, это сработало! :) – Erchy

Смежные вопросы