| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1070 人关注过本帖
标题:C语言求模运算(新手求助,不要笑我,谢谢!)
只看楼主 加入收藏
小白II
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-19
收藏
 问题点数:0 回复次数:8 
C语言求模运算(新手求助,不要笑我,谢谢!)

我刚刚开始学C几天,遇到个问题,请高手帮个忙,在线等答案:
题目是这样子的:接收一个字符,例如用“+”表示加法,用“-”表示减法。接收num1和num2两个数。如果输入的字符为“+”,则将这两个数相加并显示相应结果。如果输入的字符为“-”,则将这两个数相减并显示相应的值。
下面是我的做法:
#include <stdio.h>
void main()
{ char x;
float num1,num2,num3;
printf("请输入一个运算符(+,-,%,*,/):");
scanf("%c",&x);
if(x=='+'||x=='-'||x=='*'||x=='/'||x=='%')
{printf("请输入两个数字:");
scanf("%f%f",&num1,&num2);
if(x=='+')
{num3=num1+num2;}
if(x=='-')
{num3=num1-num2;}
if(x=='*')
{num3=num1*num2;}
if(x=='/')
{num3=num1/num2;}
if(x=='%')
{(int)num3=(int)(num1)%(int)(num2);}

printf("%.2f%c%.2f=%.2f\n",num1,x,num2,num3);}
else{printf("输入错误!");}
}
在做加减乘除时,都没问题。可是做求模时就做不出来,我知道怎么错的,可我不会改,有人能帮帮我吗?谢谢了!

搜索更多相关主题的帖子: C语言 新手 运算 
2007-10-19 17:34
小白II
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-19
收藏
得分:0 

来个人帮帮忙啊


2007-10-19 17:42
orange_fit
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-19
收藏
得分:0 
#include <stdio.h>
void main()
{ char x;
float num1,num2,num3;
printf("请输入一个运算符(+,-,%,*,/):");
scanf("%c",&x);
if(x=='+'||x=='-'||x=='*'||x=='/'||x=='%'){
printf("请输入两个数字:");
scanf("%f%f",&num1,&num2);
if(x=='+') {num3=num1+num2;}
if(x=='-') {num3=num1-num2;}
if(x=='*') {num3=num1*num2;}
if(x=='/') {num3=num1/num2;}
if(x=='%'){num3=(int)(num1)%(int)(num2);}
printf("%.2f%c%.2f=%.2f\n",num1,x,num2,num3);
}
else{printf("输入错误!");}
}
这是我的做法...可能只是改了.求模 这一块
2007-10-19 18:02
小白II
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-19
收藏
得分:0 
回复:(小白II)C语言求模运算(新手求助,不要笑我,...

谢谢楼上的哥哥,这样是可以了,不过还有一个问题,我想要这里
printf("请输入一个运算符(+,-,%,*,/):");
打印的时候,能把%也打出来,可以吗,现在是打不出来的,就是两个,,在一起


2007-10-19 18:10
小白II
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-19
收藏
得分:0 
还有能给我解释一下,我为是什么会错吗????

2007-10-19 18:14
小白II
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-19
收藏
得分:0 
我自己写的没错没警告,可是不行
为什么改成有警告的,运行起来,到是对的了呢

2007-10-19 18:16
小白II
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-19
收藏
得分:0 
谁帮帮我啊,谢谢

2007-10-19 18:39
orange_fit
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-19
收藏
得分:0 
{(int)num3=(int)(num1)%(int)(num2);}
因为我觉得..你后面求模..经已是强制变成INT...后面求得的模经已是INT,所以不用在强制转换为INT

还有注意一下大括号...就可以了.
2007-10-19 22:43
zxc1998
Rank: 1
等 级:新手上路
威 望:1
帖 子:133
专家分:0
注 册:2007-3-21
收藏
得分:0 
如果你想把num3强制转换为int, 应该是num3 = (int)num3;

直接写成(int)num3,并不能把num3转换成int
2007-10-20 00:11
快速回复:C语言求模运算(新手求助,不要笑我,谢谢!)
数据加载中...
 
   



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

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