小编Avi*_*003的帖子

C编译失败:找不到math.h函数

我正在写一个素数发现者.在数学上,它更快,而不是for (unsigned long i = 2; i < number/2; i++)更快,并且仍然同样有效for (unsigned long i = 2; i < sqrt(number); i++)

但它不起作用.以下是我的代码.

// Stuff goes up here, including a function prototype and:
#include <math.h>
char isPrime (unsigned long number)
{
    if (number <= 1) {
    return 0;
    }
    long double sqrtOfNumber = sqrt(number); // Calculate once.
    for (unsigned long i = 2; i < sqrtOfNumber; i++) {
        if (number%i == 0) { // It has a divisor.
            return 0; …
Run Code Online (Sandbox Code Playgroud)

c gcc

4
推荐指数
1
解决办法
2万
查看次数

C中的合并排序:仅适用于前10000个整数

我正在开设Coursera课程,并且我获得了一个包含100,000个整数的文件,可以使用合并排序进行排序.现在,我的函数恰好在前1000个整数上工作,但出于某种原因,一旦达到10000+,它就会停止工作.是的,我#define根据我正在测试的整数修改顶部.我将使用我在网上找到的另一个实现,但为什么我的代码不起作用?我想我错过了很明显的东西.

哦,对于家庭作业,我需要输入排序所需的倒数(多少次,想象一下冒泡排序,是否需要将较早/较小的数字移到后面/更大的数字后面).因此全局变量.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define fileLineNumber 1000

void MergeSortL1 ( int arrayIn[], int arraySize );
int inversionCounter = 0;

int main (int argc, const char * argv[])
{
 // Declarations. Whee. Typical counter variable, i, arrayInOrder for boolean logic, a char for the file read type... and the array of so many bits...
 int array[fileLineNumber];
 int i, temp;
 FILE *fp;
 char* filePath = "/Users/TMC/Code/algorithmsCoursera/lesson1/IntegerArray.txt";
 char arrayInOrder = 1, fileOpenType;
 // Here, open a file. …
Run Code Online (Sandbox Code Playgroud)

c mergesort

2
推荐指数
1
解决办法
893
查看次数

标签 统计

c ×2

gcc ×1

mergesort ×1