相关疑难解决方法(0)

为什么(1/2)*x与0.5*x不同?

这表现得很好:

double t = r[1][0] * .5;
Run Code Online (Sandbox Code Playgroud)

但这不是:

double t = ((1/2)*r[1][0]);
Run Code Online (Sandbox Code Playgroud)

r 是一个二维矢量.

只是想到了一种可能性.是因为(1/2)被认为是int(1/2) == 0

c c++

10
推荐指数
3
解决办法
9990
查看次数

如何将第一个数字移动到c ++中数字的末尾?

这是代码:

#include <iostream>
using namespace std;

int main ()
{
    int n;
    cin >> n;
    int first = n;

    while (first>=10)
    {
      first/=10;
    }

    cout << first << endl;
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我试图获得正数的第一个数字,我想要做的是将它放在最后一个数字之后,例如: 1934 -> 9341.

c++

10
推荐指数
3
解决办法
3609
查看次数

使用带无符号整数的div

C++标准提供div(int,int),但不提供udiv(unsigned int,unsigned int).

如果我天真地在这个函数中使用无符号整数,我可以看到这会对分子中大于2 ^ 31 - 1的整数产生错误的结果.例如(带有4位半字节):

最大的4位半字节是15,1111二进制.作为有符号的半字节,这将代表-1.将15除以2得到7或0111,但将-1除以2得到0:0000.

是否有一种直接的方法来将div调整为无符号整数,或者我最好是编写自己的udiv,还是完全避免使用div和div类函数?

编辑/注意:在我的情况下,我正在使用unsigned long long ints,所以使用lldiv并不能解决问题.

c c++ division

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

奇数总是在用剩余部分划分时返回楼层吗?

我是否可以确定C++中的奇数应该总是以这样的方式返回结果的底层,即存在余数或者是否有任何例外?我的意思是:

int x = 5;
x = x/2;
cout<<x;      //2
Run Code Online (Sandbox Code Playgroud)

c++

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

如何划分整数值

我想在VB.NET中执行整数除法,即只保留除法结果的整个部分.

Dim a, b, c as int32
a = 3500
b = 1200
c = a/b
Run Code Online (Sandbox Code Playgroud)

这个例子输出3.

如何让它返回2

vb.net integer-division

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

为什么如果(1/10)和if(0.1)有不同的值?

只是不明白为什么以下两个有不同的值.第一个值为0,而另一个值为1

if(1/10);
if(0.1);
Run Code Online (Sandbox Code Playgroud)

c

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

向上翻n/4的有效方法

我有一个整数n,我需要向上舍入n/4.出于性能原因,我需要在C中找到一个快速的方法.除以4可以使用>> 2移位操作来完成,但我不知道该轮.我可以使用ceil,但我担心性能.

c algorithm math optimization rounding

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

为什么在C中执行算术后会丢失剩余的值?

我试图通过遵循教科书来学习基本的C编程,我必须遗漏一些关于数据类型,舍入和/或操作顺序的东西,因为当我尝试构建一个简单的程序来将秒转换为小时和分钟时,小时工作,但剩余的分钟在不应该的时候达到0.

感谢Coursera,我知道像这样的程序存在巨大的安全漏洞,但出于学习目的,我会要求你忽略安全性.现在,书籍要我坚持使用printf,scanfwhile循环,因为它们对应于我正在阅读的教科书的章节(书籍让我知道,当我是一个教科书时,我会开始担心安全问题几个章节继续).

我的C程序看起来像这样:

/* Ask the user for a number of seconds, convert to X hours and Y minutes */
/* Continue doing this with a while loop until user enters 0 */
#include <stdio.h>
#include <conio.h>
#include <string.h>

int main(void)
{
    const int minperhour = 60;
    const int secpermin  = 60;
    int sec, hr;
    float min;
    sec = 1;
    while(sec != 0)
    {
        printf("Enter the number of seconds to …
Run Code Online (Sandbox Code Playgroud)

c

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

即使我使用浮点数,为什么 5/2 也会导致“2”?

我输入了以下代码(并且没有编译问题或任何问题):

float y = 5/2;
printf("%f\n", y);
Run Code Online (Sandbox Code Playgroud)

输出很简单: 2.00000

我的数学没有错吧?或者我在 / 操作符上错了?这意味着分裂不是吗?5/2 应该等于 2.5?

任何帮助是极大的赞赏!

c math floating-point precision division

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

是否有可能对于两个正整数i和j,( - i)/ j不等于 - (i/j)?

是否有可能对于两个正整数i和j,( - i)/ j不等于 - (i/j)?我无法弄清楚这是否可能......我认为这将是关于位,或char类型的溢出或东西,但我找不到它.有任何想法吗?

c math

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