学点C语言(17):数据范例 – 因范例激发的问题或错误
当前位置:以往代写 > C/C++ 教程 >学点C语言(17):数据范例 – 因范例激发的问题或错误
2019-06-13

学点C语言(17):数据范例 – 因范例激发的问题或错误

学点C语言(17):数据范例 – 因范例激发的问题或错误

副标题#e#

1. 运算功效超出范例巨细:

#include <stdio.h>
#include <limits.h>

int main(void)
{
  short s1 = SHRT_MAX;
  short s2 = SHRT_MAX;
  short num1;
  int num2;

  /* 不会是期望的值 */
  num1 = s1 + s2;
  printf("%d\n",num1);

  /* 这样可以了 */
  num2 = s1 + s2;
  printf("%d\n",num2);

  getchar();
  return 0;
}

2. 把大的赋给小的:

#include <stdio.h>
#include <limits.h>

int main(void)
{
  unsigned int n1=INT_MAX;
   unsigned char n2;
  unsigned short n3;

  n2 = n1;
  n3 = n1;

  printf("%u,%u,%u\n",n1,n2,n3);
  printf("%#X,%#X,%#X\n\n",n1,n2,n3);

  n1 = LLONG_MAX;
  printf("%lld,%u\n",LLONG_MAX,n1);
  printf("%#llx,%#x\n",LLONG_MAX,n1);

  getchar();
  return 0;
}

3. 把浮点数赋给整数:

#include <stdio.h>

int main(void)
{
  double pi = 3.14159265;
  int i;

  /* 只会留下整数部门 */
  i = pi;
  printf("%d\n",i);

  /* 而且不会四舍五入 */
  i = 3.6;
  printf("%d\n",i);

  getchar();
  return 0;
}


#p#副标题#e#

4. 两个整数相除只返回整数:

#include <stdio.h>

int main(void)
{
  int n1 = 3;
  int n2 = 2;
  float f;

  /* 这样不可; 但假如你原来就只想要整数部门,那不正中下怀吗? */
   f = 3 / 2;
  printf("%g\n",f);

  /* 这样才可以(假如只有两个运算数,个中一个是浮点数即可,但多了不可) */
   f = 3.0 / 2.0;
  printf("%g\n",f);

  /* 这样不可 */
  f = n1 / n2;
  printf("%g\n",f);

  /* 这样也不可 */
  f = (float)(n1 / n2);
  printf("%g\n",f);

  /* 这样才可以 */
  f = (float)(n1) / (float)(n2);
  printf("%g\n",f);

  getchar();
  return 0;
}

返回“学点C语言 – 目次”

    关键字:

在线提交作业