Sphere在线裁判生命,宇宙和一切

问题描述

您的程序是使用蛮力方法来找到生命,宇宙和一切的答案。更准确地说...将小数从输入重写为输出。读完数字42后,停止处理输入。输入的所有数字都是一两位数字的整数。

输入:1 2 88 42 99

输出:1 2 88

我试图在c ++的帮助下解决该程序,结果得到错误的结果。

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int i,n;

    for(i=0;i<10;i++)
    {
        cin>>n;
        if(n == 42)
            break;
    }
    return 0;
}

然后在C的帮助下,我解决了问题,结果如下所示:

#include <stdio.h>

int main(void)
{
    int i = 0;

    while (scanf("%d\n",&i) && i != 42)
    {
        printf("%d\n",i);
    }
    return 0;
}

您能告诉我我在第一个程序中犯了什么错误吗?我是编码的新手。 在此先感谢:)

解决方法

  1. 使用#include <bits/stdc++.h>(更多信息here)是一种不好的做法。
  2. 使用using namespace std;(更多信息here)是一种不好的做法。
  3. 您没有打印任何东西。使用std::cout
  4. 为了便于阅读,您应该在i循环语句中声明for
  5. 我同意山姆·瓦尔沙夫奇克的观点。如果您想学习C ++,请搜索一本好的教科书而不是在线测验站点。
#include <iostream>

int main()
{
   int n;
   for(int i = 0; i < 10; i++)
   {
         std::cin >> n;
         if(n == 42)
            break;
         std::cout << n;
   }
   return 0;
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...