返回值C的问题

时间:2014-10-01 21:30:02

标签: c

获得返回(巨大)值的问题。我已经在enthernet上查了一下,但一无所获:(希望在这里我可以找到我的问题的答案。我只是初学者,如果你不知道什么是错的话,很难做正确的事((

#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];) 我也在使用指针。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

这是一个错误:

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

您使用维度masivs声明i,但这是一个未初始化的变量。这会导致未定义的行为。也许你的意思是:

int masivs[15];

在将n1n2用作数组索引之前,您还应该检查它是否在正确的范围内。