gpt4 book ai didi

c - C中输出随机数组中的正数和负数

转载 作者:行者123 更新时间:2023-11-30 20:20:01 26 4
gpt4 key购买 nike

我必须创建一个程序来区分正数和负数来自随机数组。
我一开始尝试创建 void 来仅分隔正数( visualizzaVettorePos ),但我不断收到 Id return 1 exit status .
有什么想法吗?

代码:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define DIM 100
#define NUM 20

void caricaVettore(int*, int);
void visualizzaVettore(int*, int);
void visualizzaVettorePos(int[], int[], int);

int main(){
int mioVettore[DIM];
int vettorePos[DIM];
srand((unsigned)time(NULL));
caricaVettore(mioVettore, DIM);
visualizzaVettore(mioVettore, DIM);
visualizzaVettorePos(mioVettore, vettorePos, DIM);
system("PAUSE");
return 0;
}

void caricaVettore(int* vettore, int quanti){
int i;
printf("Inizio fase caricamento (input)\n");
for(i=1; i<=quanti; i++){
vettore[i]=rand()%(NUM*2+1)+(-NUM);
}
printf("Fine fase caricamento (input)\n");
}

void visualizzaVettore(int* vettore, int quanti){
int i;
printf("Inizio fase visualizzazione (output)\n");
for(i=1; i<=quanti; i++){
printf("Valore indice %d: %d\n", i, vettore[i]);
}
printf("Fine fase visualizzazione (output)\n");
}

void visualizzaVettoriPos(int vettore[], int vettorepos[], int quanti){
int i,j;
j=1;
for(i=0; i<quanti; i++ && j++){
if (vettore[i]>=0){
vettorepos[j]=vettore[i];
}
}
}

最佳答案

您的程序表现出未定义的行为。在 C 数组中,索引从 0 开始,而不是从 1 开始。

因此,您需要像这样更改 for 循环:

for (i = 0; i < quanti; i++)

而不是:

for (i = 1; i <= quanti; i++)

出于同样的原因,在 visualizzaVettoriPos 函数中

j = 1;

应该是

j = 0;

关于c - C中输出随机数组中的正数和负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47637159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com