大佬帮忙看看这个程序有啥问题,提交上去一直WA
#include<stdio.h>int main()
{
int i,j,k,m,n;
while(scanf("%d %d",&n,&k)!=EOF)
{
m=n;
j=1;
for(i=200;n<i;n+=m)
{
j++;
i+=k;
}
if(j<=20) printf("%d\n",j);
else printf("Impossible\n");
}
return 0;
}
这是题目
某程序员开始工作,第一年年薪 N 万,他希望在新区买一套 60 平米,现价为 200 万的房子。假设房子价格以每年 K 万元增长,并且该程序员未来税后年薪不变,且不吃不喝,每年所得 N 万全都积攒起来,问第几年能够买下这套房子?
输入描述
有多组测试数据,每组测试数据占一行。
每一行包含两个正整数 N (10 ≤ N ≤ 50) 和 K (1 ≤ K ≤ 20),中间用单个空格隔开。
输出描述
如果在第 20 年或者之前就能买下这套房子,则输出一个整数 M,表示最早需要在第 M 年能买下,否则输出 "Impossible"。
样例输入
50 10
12 2
1 5
样例输出
5
20
Impossible 本帖最后由 傻眼貓咪 于 2022-4-14 23:24 编辑
#include <stdio.h>
int main() {
int N, K, flag;
while (scanf("%d%d", &N, &K) == 2)
{
flag = 1;
for (int year = 0, salary = 0, price = 200; year <= 20; year++, salary += N, price += K) {
if (salary >= price) {
printf("%d\n", year);
flag = 0;
break;
}
}
if (flag) printf("Impossible\n");
}
return 0;
} 试下这个
#include<stdio.h>
int main()
{
int k, n, kk, nn, year;
while(scanf("%d %d",&n, &k)!=EOF)
{
year = 1;
kk = 0;
nn = 0;
while(year<=20)
{
kk = 200 + (year-1) * k;
nn += n;
if(nn>=kk)
{
printf("%d\n", year);
break;
}
year+=1;
}
if(kk>nn)
{
printf("Impossible\n");
}
}
return 0;
}
本帖最后由 jackz007 于 2022-4-15 11:15 编辑
#include <stdio.h>
int main(void)
{
int a , b , c , e , K , N ;
bool f ;
for(f = true ; f ;) {
for(; f ;) {
printf("Input N & K (10 <= N <= 50 , 1 <= K <= 20) : ") ;
e = scanf("%d%d" , & N , & K) ;
if(e == 2) {
if(N >= 10 && N <= 50 && K >= 1 && K <= 20) break ;
else printf("Error : Invalid data\n\n") ;
} else {
if(e == EOF) {
f = false ;
break ;
} else {
if(! e) fflush(stdin) ;
printf("Error : Invalid data\n\n") ;
}
}
}
if(f) {
c = (200 - K) / (N - K) ;
if((200 - K) % (N - K)) c ++ ;
if(N > K) printf("%d\n" , c) ;
else printf("Impossible\n") ;
}
}
}
编译、运行实况:
D:\\>g++ -o x x.c
D:\\>x
Input N & K (10 <= N <= 50 , 1 <= K <= 20) : 50 10
5
Input N & K (10 <= N <= 50 , 1 <= K <= 20) : 12 2
20
Input N & K (10 <= N <= 50 , 1 <= K <= 20) : 1 5
Error : Invalid data
Input N & K (10 <= N <= 50 , 1 <= K <= 20) : ^Z
D:\\>
【说明】:由于题目要求 N (10 ≤ N ≤ 50) 和 K (1 ≤ K ≤ 20),所以,N = 1,K = 5 属于无效输入。 本帖最后由 jhq999 于 2022-4-15 10:02 编辑
大哥们不知道
if(N-K>0&&years=200/(N-K)){}吗?
没怎么按照题目,但可以正常运行
本帖最后由 蔚蓝水晶 于 2022-4-15 17:02 编辑#include <stdio.h>
int main ()
{
int N,K,fprice=200,n;
do{
printf("请输入年工资N(10<=N<=50)和每年房价增长价格K(1<=K<=20):");
scanf("%d %d",&N,&K);
if(!(N>=10&&N<=50&&K>=1&&K<=20)){
printf("输入无效,请重新输入。\n");
}
else{
break;
}
}while(1);
if(N>K){
int n=fprice/(N-K);
printf("你需要%d年",n);
}
else{
printf("Impossible");
}
return 0;
}
页:
[1]