c++ - 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;
}
然后在 CI 的帮助下解决了这个问题,结果是这样的:
#include <stdio.h>
int main(void)
{
int i = 0;
while (scanf("%d\n", &i) && i != 42)
{
printf("%d\n", i);
}
return 0;
}
你能告诉我我在第一个程序中犯了什么错误吗?我是编码的新手。提前致谢 :)
解决方案
- 这是一个不好的做法
#include <bits/stdc++.h>
(更多信息在这里)。 - 这是一个不好的做法
using namespace std;
(更多信息在这里)。 - 你没有打印任何东西。使用
std::cout
. - 为了代码的可读性,您应该
i
在for
循环语句中声明。 - 我同意 Sam Varshavchik 的观点。如果您想学习 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;
}