| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 575 人关注过本帖
标题:宏的问题,救命啊!
只看楼主 加入收藏
木北北
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-11-24
收藏
 问题点数:0 回复次数:6 
宏的问题,救命啊!
#include "stdio.h"
#include "math.h"
#define S(x) sqrt(x+100)
#define D(y) sqrt(y+268)
#define K 1
int main(void)
{
 int i=1,a,b;
 while(i!=10000)
 {
  a=S(i);
  b=D(i);
  i++;
 
 #if K
  if(a*b==i+100 && b*b==i+286)
   printf("\n%ld\n",a+b);
    #endif
 }
 
}

这样写怎么什么都输出不了,还是就不能这么写。
我想用宏定义来实现。
高手帮帮我啊!
搜索更多相关主题的帖子: 救命 
2007-11-26 23:39
qingfengdan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-11-27
收藏
得分:0 
#include "stdio.h"
#include "math.h"
#define S(x) sqrt(x+100)
#define D(y) sqrt(y+268)
#define K 1
int main(void)
{
int i=1,a,b;
while(i!=10000)
{   i++;           
  a=S(i);   
  b=D(i);   
 

#if K
  if(a*b==i+100 && b*b==i+268 )
   printf("\n%ld\n",a+b);
    #endif
}

}

看看是不是这个,这个到是可以运算,结果是166。
2007-11-27 00:23
木北北
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-11-24
收藏
得分:0 
楼上的高手,能给我细讲讲吗?
为什么把i++  放上面就能输出了那?
2007-11-27 00:27
qingfengdan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-11-27
收藏
得分:0 
可能是你的题目在数学的整数中无解吧!我个人觉得你的程序是没错的,只是你的数值存在的错误。我最多只能看出这些,如果不是这样的话,我只能说抱歉了。
2007-11-27 00:33
木北北
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-11-24
收藏
得分:0 
可我的i在之前就声明了啊,让它等于1.
while里的i++  写在那里都应该没问题的啊
郁闷了
2007-11-27 00:37
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
/* 有人发过一个这样的帖子,都存在相同的错误,看楼下 (7搂)*/

#include <stdio.h>
#include <math.h>

int main(void)
{
    int x, y, i = 0;
   
    do
    {
        i++;
        y = 0;
        x = sqrt(i + 100);
        if(x * x == (i + 100))
            y = sqrt(i + 268);
    }while(x * x != i + 100 || y * y != i + 268 || i < 0);   /* 我只求一个符合的数 */
   
    if(i > 0)
        printf("%d", i);
    getchar();
    return 0;
}

[[italic] 本帖最后由 cosdos 于 2007-11-27 01:52 编辑 [/italic]]

—>〉Sun〈<—
2007-11-27 01:44
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
if(a*b==i+100 && b*b==i+286)
   printf("\n%ld\n",a+b);

a * a
应该输出 i   , printf("%d\n", i);




还有这宏太没意义了。
#define S(x) sqrt(x+100)
#define D(y) sqrt(y+268)

[[italic] 本帖最后由 cosdos 于 2007-11-27 01:48 编辑 [/italic]]

—>〉Sun〈<—
2007-11-27 01:45
快速回复:宏的问题,救命啊!
数据加载中...
 
   



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

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