gpt4 book ai didi

c - 在数组中查找值范围时出错

转载 作者:行者123 更新时间:2023-11-30 18:45:47 25 4
gpt4 key购买 nike

程序“读取”非负整数并填充最大大小为 100 的数组,直到填满或用户给出 -1。然后,函数 range 找到最小值和最大值并将它们“发送”到程序。例如,如果用户给出 67 54 78 85 -1,则值的范围是 54-85。

问题是,main 不打印范围。相反,它打印:“值的范围是 2 - 24576000”

#include <stdio.h>
#include "simpio.h"

int read_data(int A[]);
void range(int sum,int A[100], int *r1, int *r2);

int main()
{
int A[100], sum, max, min,i;
int *r1,*r2;

r1 = &max;
r2 = &min;
printf("Enter the elements of the array, one per line.\n");
printf("Use -1 to signal the end of the list.\n");
sum=read_data(A);
range(sum,A, &max, &min);
printf("The number of elements is: %d\n",sum);
printf("The range of values is %d - %d",min ,max);

}

int read_data(int A[])
{
int i,sum,value;

sum=value=i=0;
while ( i<100 && value !=-1)
{
printf("? ");
value = GetInteger();
if (value != -1)
{
A[i] = value;
value = A[i];
sum+=1;
}
i++;

}
return sum;
}

void range(int sum,int A[100], int *r1, int *r2)
{
int i,max,min;
max =0;
min = 32767;
*r1 = min;
*r2 = max;


for(i=0;i<sum;i++)
{
if (A[i]!=-1)
{
if (A[i]>max)
max = A[i];
if (A[i]<min)
min = A[i];
}
}
*r1 = max;
*r2 = min;
}

最佳答案

问题之一是您没有在函数 read_data 中增加 i 的值。

另一个问题是第四个 printf

printf("%The number of elements is: %d\n",sum);

在函数 main 中有一个“%T”,printf 函数将其视为格式说明符(就像您用于整数“%d”的格式说明符)。如果你真的想在那里写%,你应该使用格式

printf("%%The number of elements is: %d\n",sum);

它只会打印百分之一。

如果您想了解有关 printf 接受的格式说明符的更多信息 http://www.cplusplus.com/reference/cstdio/printf/ .

关于c - 在数组中查找值范围时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53602222/

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