一道c++程序题
答案:3 悬赏:20 手机版
解决时间 2021-01-26 22:20
- 提问者网友:戎马万世
- 2021-01-26 16:43
描述
某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子(第一年房价200万,收入N万)
输入
有多行,每行两个整数N(10<=N<=50), K(1<=K<=20)
输出
针对每组数据,如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible,输出需要换行
样例输入
50 10 40 10 40 8
样例输出
8 Impossible 10
我的做法
#include
using namespace std;
main(){
float m,n,k,a;
cin>>n>>k;
a=200+2k;
for(m=1;a20;m++)
{a=a*(1+k/100);}
if(m>20)
cout<<“impossible";
else if(n<10||n>50)
cout<<"impossible";
else if(k<1||k>20)
cout<<"impossible";
else
cout<return 0;
}
为什么我的执行结果老是1啊,没看出来错在哪,请指教
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-01-26 17:55
稍微改动下就可以了
#include
using namespace std;
main(){
float m,n,k,a;
cin>>n>>k;
a=200;//从200开始
for(m=1;!(a20);m++)//条件是原来的非
{a=a*(1+k/100);}
if(m>20)
cout<<"impossible";
else if(n<10||n>50)
cout<<"impossible";
else if(k<1||k>20)
cout<<"impossible";
else
cout<
return 0;
}
全部回答
- 1楼网友:神的生死簿
- 2021-01-26 18:24
for(m=1;a20;m++)
这里循环都没执行,你上面的把a赋值为200+2k;a就有200多,而m*n=1*n=n,所以条件不成立就不会执行循环体
- 2楼网友:夜风逐马
- 2021-01-26 18:15
运行截图:
程序:
#include <iostream>
using namespace std;
int main(void)
{
int **p = new int *[3];
for (int i = 0; i != 3; ++i)
{
*(p + i) = new int[3];
}
int max, min;
for (int i = 0; i != 3; ++i)
{
for (int j = 0; j != 3; ++j)
{
cin >> p[i][j];
if (i == 0 && j == 0)
{
max = p[i][j];
min = p[i][j];
}
if (max < p[i][j])
{
max = p[i][j];
}
if (min > p[i][j])
{
min = p[i][j];
}
}
}
cout << "max = " << max << endl;
cout << "min = " << min << endl;
for (int i = 0; i != 3; ++i)
{
delete [] *(p + i);
}
delete [] p;
system("pause>nul");
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯