资讯详情

计算2X4X6X...X100的值(上面是错解,附正解)

#include <stdio.h> int main() {  int a=2, n=1,sum=1;   while (n<=50)  {   n=n 1;      sum=sum*a;     a=a 2;      }  printf("%d %d\n",n,a);  printf("%d\n",sum);  return 0; }

操作结果如下:n=51,a=102,sum=0

错误原因:计算结果sum过大,使得int爆了

解决方法:将sum初始值搞成double类型的

#include <stdio.h> int main() {   double sum=1;  int a=2, n=1;   while (n<=50)  {   n=n 1;      sum=sum*a;     a=a 2;      }  printf("%d %d\n",n,a);  printf("%lf\n",sum);  return 0; }

值得注意的是改变数据类型(例:本文int变double类型时)也应改变相应的格式字符

以下是常用格式字符

1.%d格式符用于输出十进制整数

2.%c用于输出字符的格式符。

3.%s格式符,用来输出一个字符串。

4.%o格式符,以八进制整型输出整数。

5.%×格式符,以16进制数的形式输出整数。

6.%u用于输出的格式符unsigned型数据,即无符号数,以十进制输出。

7.%f用于输出实数(包括单双精度)和小数输出的格式符。

8.%e格式符,以指数形式输出实数。

9.%g格式符,用于输出实数,根据值的大小自动选择f格式或e格式(选择宽度小的输出),不输出无意义的零。

10.%p用于输出变量地址的格式符。

11.%d,输出整形数据的实际长度。

12.%md,m为指定输出字段的宽度。

13.%ld,输出长整形数据。ldld输出两个12位的长整数

标签: 2x100k14继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台