C语言求教。。。。。。
一个马戏团表演,n个座位全满,全部门票收入是120元,现在知道,男人每人5元,女人每人2元,小孩每人1角。编程,输入总人数n,输出满足要求的男人、女人和小孩人数的全部方案...
一个马戏团表演, n 个座位全满,全部门票收入是 120 元,现在知道,男人每人 5 元,女人每人 2 元,小孩每人 1 角。编程,输入总人数 n ,输出满足要求的男人、女人和小孩人数的全部方案。若 n 人无法满足条件,则输出“No output\n”。
输入: 人数 n
输出: 男人、女人和小孩人数
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{int n,i,j,k,m;
scanf("%d",&n);
m=0;
for(i=0;i<=24;i++){
for(j=0;j<=n-i;j++){
k=n-i-j;
if(5*i+2*j+0.1*k==120){
printf("%d,%d,%d\n",i,j,k);
m=1;}
}
}
if(m==0){
printf("No output\n");}
system("PAUSE");
return 0;
} 为什么输入60 只能输出一组0,60,0 呢?应该还有一组19,11,30啊??? 展开
输入: 人数 n
输出: 男人、女人和小孩人数
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{int n,i,j,k,m;
scanf("%d",&n);
m=0;
for(i=0;i<=24;i++){
for(j=0;j<=n-i;j++){
k=n-i-j;
if(5*i+2*j+0.1*k==120){
printf("%d,%d,%d\n",i,j,k);
m=1;}
}
}
if(m==0){
printf("No output\n");}
system("PAUSE");
return 0;
} 为什么输入60 只能输出一组0,60,0 呢?应该还有一组19,11,30啊??? 展开
展开全部
DEV C++编译器问题吧,楼主解决方式很简单
等式左右两边都乘以10
假设男人60元,女人20元,小孩1元,这时候都为Int,可以回避运算时候的类型不同强制转换的问题。
应该是运算强制转换时候将pass所有小孩人数大于0时候的情况
等式左右两边都乘以10
假设男人60元,女人20元,小孩1元,这时候都为Int,可以回避运算时候的类型不同强制转换的问题。
应该是运算强制转换时候将pass所有小孩人数大于0时候的情况
追问
厉害厉害,我明白了。谢谢啦。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我复制了你的代码,进行了调试,是输出了两组啊。。。。你看错了吧
更多追问追答
追问
没错啊,我用的是Dev c++
追答
我已经测试过可以了,没截图,有别的问题可以问我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以输出19,11,30啊
更多追问追答
追问
啊?!……我也不知道我的为什么不行。我用的Dev c++.
追答
又是一个蛋疼的问题。不过我测试过了,在vc里可以通过,在dev c++和gcc不通过。这应该是vc的问题,因为后两者是支持标准c++的。所以你将程序改改,120改为120.0试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询