问题描述
您的程序是使用蛮力方法来找到生命,宇宙和一切的答案。更准确地说...将小数从输入重写为输出。读完数字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;
}
您能告诉我我在第一个程序中犯了什么错误吗?我是编码的新手。 在此先感谢:)
解决方法
- 使用
#include <bits/stdc++.h>
(更多信息here)是一种不好的做法。 - 使用
using namespace std;
(更多信息here)是一种不好的做法。 - 您没有打印任何东西。使用
std::cout
。 - 为了便于阅读,您应该在
i
循环语句中声明for
。 - 我同意山姆·瓦尔沙夫奇克的观点。如果您想学习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;
}