注册 登录
编程论坛 VC++/MFC

求教不知道问题在哪里

oload 发布于 2012-10-16 21:13, 373 次点击
#include <stdio.h>
#include<math.h>
 void main()
 {  int j,cnt=0, i,w[4];
   for(j=1000;j<=9999;j++) {
       for (i=0;i<4;i++) {
            w[i]=(j/((int)(pow(10,i))))%10  ;
            if(w[i]==8)     
        { cnt++ ;
            printf("%d\t",j);
            }
       }
   }         
     
 printf("\n四位自然数理含有8的数字一共有%d个\n",cnt);
 }
问题描述:
            当j的最大值取值不同时,满足条件的j的计数值就不同,测试发现当j最大值为8000时,满足条件的j从1008开始计数,当j8800时满足条件的j的是值从1508开始计数。难道是溢出问题?分析不出来,求帮忙看看!!!!
没有分就不送了。。谢过先
2 回复
#2
liman1232012-10-19 12:37
这个问题我也碰到过,好像是编译器输出窗口的相关属性问题,具体的我也说不上来,我也不知道该怎么设置相关的属性。还是百度吧
#3
cyhdahua2012-10-19 20:38
#include <stdio.h>
#include<math.h>
int main()
{  int j,cnt=0, i,w[4];
   for(j=1000;j<=9999;j++) {
       for (i=0;i<4;i++) {
            w[i]=(j/((int)(pow(10,i))))%10  ;
            if(w[i]==8)     
         { cnt++ ;
            printf("%d ",j);
            break;
            }
       }
   }         
     
printf("\n四位自然数理含有8的数字一共有%d个\n",cnt);
}
看看代码 差不多你就明白了
1