有关 SPOJ 测试的查询

Query regarding SPOJ TEST

本文关键字:查询 测试 SPOJ 有关      更新时间:2023-10-16

我在这个论坛上提出 SPOJ 问题可能是错误的,但我想了解我想从这里的丰富社区了解的一种机制。

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

输入:12884299

输出:1288

我的解决方案:

#include <iostream>
using namespace std;
int main()
{
   int n,i=0;
   int a[100] = {0};
   while((cin>>n))
   {
      a[i] = n;
      i++;
      continue;
   }
   for(int j = 0;a[j]!=42;j++)
      cout<<a[j]<<endl;
   return 0;
}

好的解决方案:

#include <iostream>
using namespace std;
int main()
{
   int n;
   while(true)
   {
      cin>>n;
      if(n == 42)
         break;
      cout<<n<<endl;
   }
   return 0;
}

我的查询是好的解决方案中的输入会发生什么?我们将只运行循环,直到数字不是 42。好的解决方案如何处理剩余的输入?我得到了一些提示,它与缓冲和所有内容有些关系。请为我提供一些解释或链接或学习材料,或者至少一些谷歌等关键字,以澄清这一点。

良好解决方案中的剩余输入将被"良好解决方案"忽略。

如果您需要更多信息,请阅读:

对象

标准::CIN

外流 CIN;

标准输入流类 istream 的对象,表示面向窄字符(字符类型)的标准输入流。它对应于 C 流标准。

标准输入流是由环境确定的字符源。通常假定它是来自外部源(例如键盘或文件)的输入。

对象标准丁文件 * 标准定;

标准输入流标准输入流是应用程序的默认数据源。在大多数系统中,它通常默认定向到键盘。

stdin 可以用作任何需要输入流 (FILE*) 作为其参数之一的函数的参数,例如 fgets 或 fscanf。