耀耀切克闹 发表于 2022-4-14 22:44:14

大佬帮忙看看这个程序有啥问题,提交上去一直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:21:53

本帖最后由 傻眼貓咪 于 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;
}

ba21 发表于 2022-4-14 23:32:01

试下这个
#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-14 23:54:49

本帖最后由 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 09:57:30

本帖最后由 jhq999 于 2022-4-15 10:02 编辑

大哥们不知道
if(N-K>0&&years=200/(N-K)){}吗?

蔚蓝水晶 发表于 2022-4-15 16:59:03

没怎么按照题目,但可以正常运行

本帖最后由 蔚蓝水晶 于 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]
查看完整版本: 大佬帮忙看看这个程序有啥问题,提交上去一直WA