Moses_G 2016-12-07 14:01 采纳率: 0%
浏览 2795

C语言 100-200间所有偶数之积与奇数之积

输出100-200间所有偶数之积和奇数之积
为什么我用while语句或者for语句整合到一起算的时候输出的奇数之积为负值?

 #include <stdio.h> 
#include <math.h>  
 main()  
{  
    int n=102;  
    long double odd1=100,odd2;

    while (n<=200)  
    {  
        if(n%2==0)  
        { 
            odd1*=n;
            n++;   
        }   

         else  
          {odd2=101;
            odd2*=n;
            n++;    
          }   
    }  
    printf("odd1=%d\nodd2=%d",odd1,odd2);   
} 

如果分开算的话就不会有这个问题。

 #include <stdio.h> 
 main() 
{ 
int i; 
long double k=100; 
for(i=102;i<=200;i+=2) 
   { 
     k=k*i;
   }
printf("100-200间偶数之积为%d\n",k);
long double t=101;
for(i=103;i<=199;i+=2)
   {
     t=t*i;
   } 
printf("100-200间奇数之积为%d\n",t);
}
  • 写回答

5条回答 默认 最新

  • qq_16426183 2016-12-07 15:06
    关注

    long double odd1=100,odd2;
    改成: unsigned long double odd1=100,odd2; 在试试,有符号型的变量第一位为1的时候表示负数。

    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办