小编foo*_*foo的帖子

'浮动'与'双'精度

代码

float x  = 3.141592653589793238;
double z = 3.141592653589793238;
printf("x=%f\n", x);
printf("z=%f\n", z);
printf("x=%20.18f\n", x);
printf("z=%20.18f\n", z);
Run Code Online (Sandbox Code Playgroud)

会给你输出

x=3.141593
z=3.141593
x=3.141592741012573242
z=3.141592653589793116
Run Code Online (Sandbox Code Playgroud)

输出的第三行741012573242是垃圾,第四行116是垃圾.双打总是有16个有效数字,而浮点数总是有7个有效数字吗?为什么双打没有14位重要人物?

c floating-point

145
推荐指数
5
解决办法
46万
查看次数

打印未签名的短值

  unsigned short a;
  char temp[] = "70000";
  a = atoi(temp);
  printf("a: %d\n", a);
Run Code Online (Sandbox Code Playgroud)

a: 4464它输出应该是a: 70000什么有更好的方法从ASCII转换为小数?无符号短路的范围是0 - 65535

c

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

PHP Mailer致命错误:找不到类'SMTP'

不知道为什么我得到这个致命的PHP错误,因为我的所有文件和类都设置正确.任何帮助将不胜感激.

contact.php在这里:

  <?
        session_start();
        if (!isset($_SERVER['DOCUMENT_ROOT'])) {
            $_SERVER['DOCUMENT_ROOT'] = substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF']));
        }

        if(strpos($_SERVER["SERVER_SOFTWARE"],"IIS") > 0) {
            define("PATH_SLASH","\\");
            define("PATH_SEPARATOR",";");
        }
        else {
            define("PATH_SLASH","/");
            define("PATH_SEPARATOR",":");
        }

        define("CONFIG",$_SERVER['DOCUMENT_ROOT'] .  PATH_SLASH . "config" . PATH_SLASH . "config.xml");
        require "classes/clsconfig.inc.php";
        require "classes/class.phpmailer.php";

    $config = new gxconfig();

    $email = true;

    $callornot = "";
        if (isset($_POST["submit"])) {
            if(isset($_POST['callme'])){
                $callornot = "yes";
            }
            else{
                $callornot = "No";
            }

            $message_participant = "<h2>Comments from the website</h2>
            Name : {$_POST['name']}<br / >
            Company : {$_POST['company']}<br / >
            Industry : {$_POST['industry']}<br …
Run Code Online (Sandbox Code Playgroud)

php

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

分析C中的快速排序

我想要做的是获得下面所需的输出.我已经尝试在quicksort的开头打印,我得到了一些正确的值,但我觉得我的整个方法都没有用,所以我需要一些帮助.

level partitionNumber d [3a_spaces x1 x3 ... xn 3b_spaces]

地点:

level是递归的级别.

partitionNumber是用于创建分区的编号.

如果partitionNumber大于分区的元素,则d为'>',否则为'<'.

3a_space是在分区开始之前数组的每个元素的一组3个空格字符.

x1 x3 ... xn是分区中的数字集.注意:使用"%3d"格式描述符打印这些数字.

3b_spaces是分区结束后数组中每个元素的一组3个空格字符.

期望的输出:

1  0  [23 13 82 33 51 17 45 75 11 27 ]
2 51> [27 13 33 23 17 45 11          ]
3 23> [11 13 17                      ]
3 23> [11 13 17                      ]
3 23< [            33 45 27          ]
4 45> [            27 33             ]
4 45> [ …
Run Code Online (Sandbox Code Playgroud)

c

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

掩盖c中不需要的位

给定十进制71744474二进制,0100010001101011101111011010我试图从这个十进制中提取的是从低位开始的每7位.七位中的每一位都表示可打印的ASCII字符,其只能有7位.我总共拿出四个字符.第一个字符是1011010这是Z在ASCII.下一个角色是w等等.我在想有一种方法来掩盖我关心的一些方面.

c

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

递归如何在C中起作用?

我试图理解C中的递归是如何工作的.任何人都可以给我一个控制流的解释吗?

#include <stdio.h>
/* printd: print n in decimal */
void printd(int n)
{
  if (n < 0)
  {
    putchar('-');
    n = -n;
  }
  if (n / 10) printd(n / 10);
  putchar(n % 10 + '0');
}

int main()
{
  printd(123);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c recursion

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

浮点舍入误差

输出是

x=1000300  y=1000000,  z=1000300
Run Code Online (Sandbox Code Playgroud)

我能理解我是如何得到x和z但是c的 y输出没有意义.

 #include <stdio.h> 
 int main() 
 { int i=0; 
  float a = 100; 
  a = a*a*a*a*a;  

 float c = 3; 
 float x = 1000000*c + a; 
 float y = a; 
 float z = 0; 

  for (i=0; i<1000000; i++) 
  { y += c; 
    z += c; 
  } 

  z += a; 
  x /= 10000; 
  y /= 10000; 
  z /= 10000; 

 printf("x=%.0f  y=%.0f,  z=%.0f\n", x, y, z); 
 }
Run Code Online (Sandbox Code Playgroud)

c floating-point floating-point-conversion

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

从C中读取文件中的输入

好的,所以我有一个输入文件,我计算每行中单词和字符的数量是否成功.当我使用下面的代码到达行尾时,它退出循环并且只读取第一行.如何继续下一行输入以继续该程序?

编辑:我必须分别解析每一行,所以我不能使用EOF

while( (c = getchar()) != '\n')
Run Code Online (Sandbox Code Playgroud)

c getchar

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