| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1762 人关注过本帖
标题:浮点型 与 整型
取消只看楼主 加入收藏
withoutme_hw
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-19
收藏
 问题点数:0 回复次数:3 
浮点型 与 整型

为什么在有些程序中 的数值计算 用浮点型 会运行不了
而一旦 将其中所有的浮点型 改成 整型就 OK
谢!

搜索更多相关主题的帖子: 点型 整型 数值计算 运行 
2006-03-19 20:54
withoutme_hw
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-19
收藏
得分:0 

例如:
这是一个计算器程序,例如输入12+2*3=
得出结果18; 注:其中有些printf语句是我用来测试用的,无太大意义。
#include <stdio.h>
#include <conio.h>

struct com
{
union
{
int num;
char sign;
}data;
struct com * next;
};
typedef struct com com;
void compute(com *pr,char s);
void Print(com *head);

main()
{
int flag=-1;
com *head,*p,*pr;
head=(com *)malloc(sizeof(com));
head->next=NULL;
pr=head;
do
{
p=(com *)malloc(sizeof(com));
if (p==NULL)
{
printf("not enough memory");
getch();
exit(0);
}
p->next=NULL;
pr->next=p;
flag*=-1;
if(flag==1)
{
scanf("%d",&p->data.num);

}
else
{
p->data.sign=getchar();
}
pr=p;
}while(p->data.sign!='=');
Print(head);
compute(head,'*');
compute(head,'+');
printf("%d",head->next->data.num);
getch();
}

void compute(com *pr,char s)
{
com *p;
pr=pr->next;
p=pr->next;
while(1)
{
if(s=='*')
{
if(p->data.sign=='*')
{
pr->data.num*=p->next->data.num;
printf("counting*\n");
}
else if(p->data.sign=='/')
{
pr->data.num/=p->next->data.num;
printf("counting /\n");
}
else
{
p=p->next->next;
pr=pr->next->next;
printf("junmping ");
if(p->data.sign=='=') break;
continue;
}
}
if(s=='+')
{
if(p->data.sign=='+')
{
pr->data.num+=p->next->data.num;
printf("counting + '%d' ",pr->data.num);
}
else
{
pr->data.num-=p->next->data.num;
printf("counting - '%d' ",pr->data.num);
}
}
pr->next=p->next->next;
free(p->next);
free(p);
p=pr->next;
if(p->data.sign=='=') break;
}
}

void Print(com *head)
{
com *p;
int flag=-1;
p=head;
do
{
p=p->next;
flag*=-1;
if(flag==1)
{
printf("%d",p->data.num);
}
else
{
printf("%c",p->data.sign);
}

}while(p->data.sign!='=');
}
以前一些简单的程序也碰到过 ,这个程序稍复杂点,
这个程序是可以正常运行的 ,但是如果把所有的int改成float %d改成%f
就会出错 。
请各位指教


好好学C 天天向上
2006-03-22 14:03
withoutme_hw
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-19
收藏
得分:0 

嗯 ,3*2= 是有问题
我改过来了
谢谢提醒


好好学C 天天向上
2006-03-25 11:51
withoutme_hw
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-3-19
收藏
得分:0 
谢谢!
但是我还是不清楚为什么加一个n=&t
就可以用浮点型的了

好好学C 天天向上
2006-03-25 11:53
快速回复:浮点型 与 整型
数据加载中...
 
   



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

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