| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 917 人关注过本帖
标题:简单问题,菜鸟困惑,请教高手……
取消只看楼主 加入收藏
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
简单问题,菜鸟困惑,请教高手……
题目是输入任意整数,问它是否是2的n次方,若不是,输出error,若是,求出n值;
我的程序如下,可以运行,但是无论输入什么都是输出error,请教高手何故?多谢……
#include<stdio.h>
void main()
{
 int y,n,result;
 long num;
 n=0;
 printf("please input the number\n");
 scanf("%d",&num);
 loop:y=num%2;                                *y为余数;
      if(num<=0)                              *如果输入负数或者0,输出error;
      printf("ERROR\n");
      else if(num==1)                         *如果输入1,则结果为0,因为1是2的0次方;
      {
       result=n;
       printf("the result is %d\n",result);
      }
      else if(y==1)                           *如果输入的数不能被2整除,也输出error;
      printf("ERROR\n");
      else if(num/2==1)                       *如果当num为2的时候,次方数为当前n值+1;
      {
       n++;
       result=n;
       printf("the result is %d\n",result);
      }
      else
      {
       num=num/2;
       n++;
       goto loop;
      }
 }
搜索更多相关主题的帖子: 简单问题 困惑 
2010-05-12 00:36
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
汗!用心的写一个居然错了……多下大家指点,我也自己找到原因了,
 else if(y==1)                           *如果输入的数不能被2整除,也输出error;
      printf("ERROR\n");
任何数像我设计的那样除下去y总有等于1的时候,所以总是输出error了……
多谢大家指点,我都看了一遍,感觉8楼的比较简单点……呵呵,个人意见……

我很懒,但我讨厌别人说我懒……
2010-05-12 17:14
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
不好意思,分不多……随便给点……表点心意……多谢……

我很懒,但我讨厌别人说我懒……
2010-05-12 17:16
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
回复 11楼 BlueGuy
从你这我也总结了一下,那就是从数据的存储方式上去考虑问题,貌似这也抓住了问题的关键……
只要弄清楚了数据在内存中是以怎样的形式存储的,就更有可能找到比较简单的办法了……
果然是高手,学习了……呵呵……
虽然这问题很好理解,但是你不说我还真想不到……

我很懒,但我讨厌别人说我懒……
2010-07-20 07:25
快速回复:简单问题,菜鸟困惑,请教高手……
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052300 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved