获得返回(巨大)值的问题。我已经在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];) 我也在使用指针。 谢谢你的帮助。
答案 0 :(得分:2)
这是一个错误:
int i,j,s;
int masivs[i];
您使用维度masivs
声明i
,但这是一个未初始化的变量。这会导致未定义的行为。也许你的意思是:
int masivs[15];
在将n1
和n2
用作数组索引之前,您还应该检查它是否在正确的范围内。