永发信息网

一道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; }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯