
c++简单题,跪求高手解答
灾后的救援需要很多的人员,现在又刚刚到达一批志愿者,他们一共有n(10<=n<=1000)人,根据指挥部的指示,他们将被分为抢险、医疗以及通信等3个小分队,并且规定...
灾后的救援需要很多的人员,现在又刚刚到达一批志愿者,他们一共有n(10<=n& lt;=1000)人,根据指挥部的指示,他们将被分为抢险、医疗以及通信等3个小分队,并且规定,抢险小分队需要占总人数的一半(如果有小数的话,则舍去),医疗小分队需要占剩余人数的2/3(如果有小数的话,则舍去),剩余的则组成通信小分队。比如一共有55人,那么抢险小分队为55/2=27人,减去抢险小分队为27人剩下28人,则医疗小分队为28*2/3 = 18人,通信小分队为55-27-18=10人。
为了保证救援工作的顺利进行,指挥部决定为每个小分队指派若干当地的向导,原则是为每十个志愿者指派一个向导(如有不足10人的情况,也指派一个),现在请问:需要为这批志愿者指派多少个向导呢?
Input
输入数据首先包含一个正整数C,表示有C组测试用例,然后是C行数据,每行包含一个正整数n(10<=n<=1000),表示志愿者的总人数。
Output
对于每组测试数据,请输出需要的向导数目,每个输出占一行。
Sample Input
2
14
55
Sample Output
3
6
自己编的函数f()没有作用啊!!
#include<iostream>
using namespace std;
void f(int x)
{
if(x>9&&x%10==0)
x=x/10;
if(x>9&&x%10!=0)
x=x/10+1;
if(x<10)
x=1;
}
int main()
{
int d,n,a,b,c;
cin>>d;
while(d--)
{
cin>>n;
a=n/2;
b=(n-a)*2/3;
c=n-a-b;
f(a);f(b);f(c);
cout<<a+b+c<<endl;
}
return 0;
} 展开
为了保证救援工作的顺利进行,指挥部决定为每个小分队指派若干当地的向导,原则是为每十个志愿者指派一个向导(如有不足10人的情况,也指派一个),现在请问:需要为这批志愿者指派多少个向导呢?
Input
输入数据首先包含一个正整数C,表示有C组测试用例,然后是C行数据,每行包含一个正整数n(10<=n<=1000),表示志愿者的总人数。
Output
对于每组测试数据,请输出需要的向导数目,每个输出占一行。
Sample Input
2
14
55
Sample Output
3
6
自己编的函数f()没有作用啊!!
#include<iostream>
using namespace std;
void f(int x)
{
if(x>9&&x%10==0)
x=x/10;
if(x>9&&x%10!=0)
x=x/10+1;
if(x<10)
x=1;
}
int main()
{
int d,n,a,b,c;
cin>>d;
while(d--)
{
cin>>n;
a=n/2;
b=(n-a)*2/3;
c=n-a-b;
f(a);f(b);f(c);
cout<<a+b+c<<endl;
}
return 0;
} 展开
3个回答
展开全部
如果你期望传给f()的参数被改变,那么做以下修改:
void f(int x)
==>void f(int& x)
void f(int x)
==>void f(int& x)
展开全部
void f(int &x)//传如引用 要不然用指针 否则你没有办法修改main函数里的数值
{
if(x>9&&x%10==0)
x=x/10;
else if(x>9&&x%10!=0)//用ifelse进行选择判断 要不然后面会因为x的改变会被执行
x=x/10+1;
else if(x<10)
x=1;
}
int main()
{
int i=0,j,n,num[20],a,b,c;
cin>>n;
while(n--)
{
cin>>num[i];
i++;
}
for (j=0;j<i;j++)
{
a=num[j]/2;
b=(num[j]-a)*2/3;
c=num[j]-a-b;
f(a);
f(b);
f(c);
cout<<a+b+c<<endl;
}
return 0;
}
{
if(x>9&&x%10==0)
x=x/10;
else if(x>9&&x%10!=0)//用ifelse进行选择判断 要不然后面会因为x的改变会被执行
x=x/10+1;
else if(x<10)
x=1;
}
int main()
{
int i=0,j,n,num[20],a,b,c;
cin>>n;
while(n--)
{
cin>>num[i];
i++;
}
for (j=0;j<i;j++)
{
a=num[j]/2;
b=(num[j]-a)*2/3;
c=num[j]-a-b;
f(a);
f(b);
f(c);
cout<<a+b+c<<endl;
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是什么东东呀
要写就写实例
要写就写实例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询