小编Die*_*Epp的帖子

在数组中移动元素

我不确定为什么下面的代码不起作用,我试图在数组中找到NaN的值,然后将NaN移动到数组中的第一个元素(元素0)并将现有元素0与任何地方交换NaN是.请问我能检查一下我的代码吗?也许你们/女孩可以看到我不能的东西?

提前致谢!

#define NaN (float)(1e308*10*0)


void movenan(float array[], int size)
{
int w;
float hold;
float move;

for(w = 0; w < SIZE - 1; w++)
{
    if(array[w] == NaN)
    {
        hold = array[w];
        array[w] = array[0];
        array[0] = hold;
    }
}
Run Code Online (Sandbox Code Playgroud)

}

c

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

如何在Objective-C/iOS中表示无限数~0.9999 .....

我有一个可能永远持续下去的数字,比如〜0.999999 ......

看到这个:

while (myNumber / 25 > 0.999999)
{
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)

如何正确地在Objective-C中表示该数字?

或者我可能while不正确地做这个循环,有人可以告诉我如何解决它?我试图看看是否myNumber可以至少划分25次......所以即使26/25也会通过(%在这种情况下mod 不起作用).

objective-c

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

可以跟踪github吗?

有没有办法看看是否有人从GitHub上的存储库执行git pull?或者这不记录在任何地方?我很感兴趣,因为一个"应该"不参与该项目的开发人员对此有很多了解.

是的,我们可以删除它们.但我很想知道他们是否滥用了他们签署的信托和NDA协议.

git github

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

if else代码块...还是一个如果有多个OR(||)条件?在C.

我在C中编写了一个小文本匹配程序,它基本上检查某些字符串中是否存在少量字符(以char数组的形式).它现在正在工作,我有一个像这样的代码块:

if (c == 'A') return 1;
else if (c == 'B') return 1;
else if (c == 'C') return 1;
....
....
else if (c == 'Z') return 1;
else return 0;
Run Code Online (Sandbox Code Playgroud)

上面的块是否更快?或者这会更快?

if (c == 'A' || c == 'B' || c == 'C' ||....|| c == 'Z') return 1;
else return 0;
Run Code Online (Sandbox Code Playgroud)

快速,我的意思是字面上快,即如果我从程序的开始直到结束运行一个简单的计时器,这可能会缩短执行时间?

c string performance if-statement

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

linux - 具有特殊字符的文件名

我有一个名为"--table"的目录,我想删除.我试过rmdir --table,rmdir --table,但它仍然没有用.什么是正确的方法?..

linux filenames

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

无法编译固定大小的静态数组

最小代码示例:

#include <stdio.h>
int main()
{
    const int a = 5;
    static int b[a];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

看起来很好,是吗?变量a是不变的.也适用于4.4.

gcc -v
gcc version 6.2.1 20160830 (GCC)
gcc 1.c
1.c: In function ‘main’:
1.c:6:16: error: storage size of ‘b’ isn’t constant
     static int b[a];
Run Code Online (Sandbox Code Playgroud)

顺便说一下,clang很好地编译了这段代码.

c gcc clang

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

何时将函数中使用的内存变为空闲?(C编程)

下面是代码

代码:

#include <stdio.h>

int * num(void);

int main(void)
{
    int * num2;
    num2 =num();
    printf("%d\n" , *num2);

    return 0;
}


int * num(void)
{
    int num = 20;

    return &num;
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 我们知道,函数num是函数的本地函数num(),所以在这段代码中我尝试num将函数中变量的地址返回给调用它的函数,即main().

  2. 之后我只使用解除引用运算符来提取特定num变量的值并将其打印出来main().

  3. 有一点我很困惑.我记得我读过一本关于javascript的书,提到变量生命周期在函数内,这意味着在函数完成执行其指令并将控制权传递给调用它的函数之后,函数中每个变量的值将是干净的out(垃圾收集器).但为什么在这段代码中我的main()函数仍然可以指向特定内存地址的值?

c variables pointers memory-address

0
推荐指数
1
解决办法
203
查看次数

C编程文件大小

我试图在创建文件并向其写入数据后获取文件的大小.我得到的值似乎与实际文件大小不符.这是我的计划.请告诉我如何以Bits,Bytes,Kilobytes和Megabytes显示文件大小.据我说,文件大小应该是288位,36字节,0.03515626千字节和0.000034332兆字节.

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h> 
#include <sys/types.h> 
#define PERMS 0777

int main(int argc, char *argv[])
{
    int createDescriptor;
    int openDescriptor;

    char fileName[15]="Filename1.txt";
    umask(0000);

    if ((openDescriptor = creat(fileName, PERMS )) == -1)
    {
        printf("Error creating %s", fileName);
        exit(EXIT_FAILURE);
    }


    if(write(openDescriptor,"This will be output to testfile.txt\n",36 ) != 36)
    {
        write(2,"There was an error writing to testfile.txt\n",43);
        return 1;
    }

    if((close(openDescriptor))==-1)
    {
        write(2, "Error closing file.\n", 19);
    }
    struct stat buf;
    fstat(openDescriptor, &buf);
    int size=buf.st_size;
    printf("%d\n",size); …
Run Code Online (Sandbox Code Playgroud)

c file filesize

0
推荐指数
1
解决办法
714
查看次数

比较两对整数的最有效方法

一个类包含两个整数; 这个类有两个实例.我想比较它们以确保两个实例包含相同的两个数字(它们的顺序无关紧要).

我可以做这个:

bool operator==(const Edge &e, const Edge &f) {
    return ((e.p1 == f.p1) || (e.p1 == f.p2)) && ((e.p2 == f.p1) || (e.p2 == f.p2));
}
Run Code Online (Sandbox Code Playgroud)

这是最好的方式吗?会有很多这样的比较,所以我想确保我做出最有效的选择.顺便说一句,运营商将主要由std::unordered_set班级使用 - 如果这些信息很重要.

c++ c++11

0
推荐指数
1
解决办法
1919
查看次数

gcc 编译 libavformat 代码,但 g++ 不编译

为了确定给定文件的视频持续时间,我使用 libavformat。我的程序如下所示:

#include <stdio.h>
#include <libavformat/avformat.h>
#include <libavutil/dict.h>
int main (int argc, char **argv) {
    AVFormatContext *fmt_ctx = NULL;
    int ret;
    if (argc != 2) {
        printf("usage: %s <input_file>\n", argv[0]);
        return 1;
    }
    av_register_all();
    if ((ret = avformat_open_input(&fmt_ctx, argv[1], NULL, NULL)))
        return ret;
    int64_t duration = fmt_ctx->duration;
    int hours, mins, secs;
    secs  = duration / AV_TIME_BASE;
    mins  = secs / 60;
    secs %= 60;
    hours = mins / 60;
    mins %= 60;
    printf("Duration: %02d:%02d:%02d\n", hours, mins, secs);
    avformat_free_context(fmt_ctx);
    return 0; …
Run Code Online (Sandbox Code Playgroud)

c++ gcc g++ libavformat

0
推荐指数
1
解决办法
705
查看次数

GCC对待int i = 048; 作为一个错误,为什么GCC不能更聪明?

GCC将其int i=048;视为错误,因为它048应该是八进制数,但8不能出现在八进制数中.

但为什么GCC不能更聪明,治疗是十进制数?

c gcc

-2
推荐指数
4
解决办法
283
查看次数