| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 860 人关注过本帖
标题:还是一个新手编的错误的小程序,始终不晓得哪里错了。
只看楼主 加入收藏
深蓝灬
Rank: 2
等 级:论坛游民
帖 子:29
专家分:22
注 册:2011-9-14
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:13 
还是一个新手编的错误的小程序,始终不晓得哪里错了。
对X,Y,分别求加减乘除模运算并将结果显示出来!
图片附件: 游客没有浏览图片的权限,请 登录注册
这是结果截图,为啥后面两个运行会出错?
 int x,y,z1,z2,z3,z5;
 float z4;
 x=50;
 y=20;
 z1=x+y;
 z2=x-y;
 z3=x*y;
 z4=x/y;
 z5=x%y;
 printf("x+y=%d\n",z1);
 printf("x-y=%d\n",z2);
 printf("x*y=%d\n",z3);
 printf("x/y=%f\n",z4);
 printf("x%y=%d\n",z5);
搜索更多相关主题的帖子: 加减乘除 
2011-09-14 20:39
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:10 
50/20    是两个整型做除法,结果为2,然后再将他转为float型, 所以会出来,2.000000
第二个我的显示的不是这样,结果只是少了一个%
printf("x%%y=%d\n",z5);     这样就可以了。
2011-09-14 20:59
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:3 
变成转义字符了
test.c: In function ‘main’:
test.c:17: warning: unknown conversion type character ‘y’ in format
修改为:
printf("x%%y=%d\n",z5);
得到结果:
x+y=70
x-y=30
x*y=1000
x/y=2.000000
x%y=10

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-09-14 20:59
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
回复 楼主 深蓝灬
倒数第二没问题啊,浮点型,最后的代码要不就你输出函数里的字符写错啥,或就是你参数错了

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-14 20:59
leech58
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:18
专家分:58
注 册:2011-8-29
收藏
得分:0 
这里你的数据类型不匹配,首先定义z4为float型
z5的话 取余 应该可以的...
但是你后面输出貌似有问题~~


[ 本帖最后由 leech58 于 2011-9-14 21:02 编辑 ]

诚心交流!
2011-09-14 21:01
深蓝灬
Rank: 2
等 级:论坛游民
帖 子:29
专家分:22
注 册:2011-9-14
收藏
得分:0 
回复 2楼 czsbc
那只要将x,y定义成 float 就行了么?
  为啥要再加一个“%”  求详解!

[ 本帖最后由 深蓝灬 于 2011-9-14 21:08 编辑 ]
2011-09-14 21:05
赵灿星
Rank: 2
等 级:论坛游民
帖 子:11
专家分:14
注 册:2011-9-13
收藏
得分:5 
#include <stdio.h>

int main()
{
        int x, y, z1, z2, z3, z5;
        float z4;
        x = 50;
        y = 20;
        z1 = x + y;
        z2 = x - y;
        z3 = x * y;
        z4 = (float)x / y;
        z5 = x % y;
        printf("x+y = %d\n", z1);
        printf("x-y = %d\n", z2);
        printf("x*y = %d\n", z3);
        printf("x/y = %f\n", z4);
        printf("x%y = %d\n", z5);
        return 0;
}
我运行出的x%y是对的为10,你的程序运行x/y结果是2.00000是因为x除以y的结果为2.5,由于x y都是int型,所以结果也为int型,因此取整为2.00然后赋值给z4,所以z4的输出当然是2.00了。如上面的程序,先把x/y的结果转化为float型,然后赋值,结果就是2.50000了。
2011-09-14 21:12
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
书上说用两个%%输出一个%
2011-09-14 21:14
赵灿星
Rank: 2
等 级:论坛游民
帖 子:11
专家分:14
注 册:2011-9-13
收藏
得分:0 
回复 2楼 czsbc
我在linux上运行printf("x%y=%d\n", z4);是对的
2011-09-14 21:14
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
我用Windows + VC运行结果也差不多是对的,就是没有%而已,得再加个%
2011-09-14 21:17
快速回复:还是一个新手编的错误的小程序,始终不晓得哪里错了。
数据加载中...
 
   



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

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