gpt4 book ai didi

c - 在 C 中查找完美数 - 编译错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:20:13 25 4
gpt4 key购买 nike

我正在编写一个简单的程序,用于查找给定范围内的完美数字。这是我拥有的:

#include<sys/types.h>
#include<sys/time.h>
#include<time.h>
#include<errno.h>
#include<fcntl.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<strings.h>
#include<unistd.h>


void Compute(double range);

int main(int argc, char** argv[])
{
double range = 40000000;

printf("range: %f\n", range);

Compute(range);
}

void Compute(double range)
{
double numbers[range];

double total = 0;
double sum = 0;
double num;
double j;

for(num = 1; num < range; num++){
sum = 0;

for(j = 1; j < num; j++){
if((num % j) == 0){
sum+=j;
}
}

if(sum == num){
numbers[total] = sum;
total++;
}

}

printf("Total: %f\n", total);

for(j = 0; j < total; j++){
printf("%f \n", numbers[j]);
}

}

但是,当我尝试编译程序时,对于 Compute() 方法中的几乎所有操作,我总是收到 error: expression must have integral type 错误。它适用于整数数据类型,但不适用于 double。我正在使用英特尔 C 编译器。知道编译器为什么会提示吗?

最佳答案

您不能创建具有浮点大小的数组

double numbers[range];

参数必须是整数。想象一下,如果 range 是 2.5 - C 不允许 2.5 double 组。一个数组必须有整数个元素

关于c - 在 C 中查找完美数 - 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13536723/

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