什么是最短、最有效的方法来获得这个程序的结果
What is the shortest and most effecient way to get the result for this program?
这是代码:有没有办法提高效率?效率是使它更短更快在我的情况下
#include <iostream>
int main()
{
int i, n, a[10], b[10];
cin >> n;
for (i = 0; i < n; i++)
{
cin >> a[i] >> b[i];
}
for (i = 0; i < n; i++)
{
if (a[i] > b[i])
cout << "Participant 1 winsn";
else
cout << "Participant 2 winsn";
}
return 0;
}
首先,您的代码不会在大多数机器中编译。原因cout
和cin
是标准名称空间std
的一部分,这意味着除非使用适当的命令,否则无法访问它们。这可以通过两种方式实现:
- 写入
std::cout
而不是cout
。这告诉编译器您想要访问对象cout
,它是标准名称空间的一部分 - 在主体之前,写
using namespace std;
。这将为您提供对属于标准命名空间的所有内容的直接访问,这些内容可以在您包含的标头中找到
现在让我们谈谈效率:
- 您不必使用数组。您可以在从标准输入读取数据的同时对数据进行处理。这将把空间复杂度从
O(N)
降低到O(1)
。换句话说,你将拥有恒定的空间 - 如果你想让代码执行得更快,并且熟悉C编程语言,你可以使用C风格的输入和输出。它的可读性较差,但效率和速度要高得多,因为它是在汇编(机器语言)中实现的
- 您可以使用内联
if-else
语句来缩短代码的长度。请注意,这是而不是的好做法,因为这会使代码非常难以阅读
综合起来:
#include <cstdio>
int main() {
int i, n, a, b;
scanf("%d", &n);
for(i=0; i<n; ++i) {
scanf("%d %d", &a, &b);
printf("Participant %d winsn", (a > b) ? 1 : 2);
}
return 0;
}
相关文章:
- 密码登录程序将永远循环并显示不正确的结果
- 为什么这个程序的结果是3 "born"?和 4 死
- 程序未产生预期的结果
- 为什么我的程序在 O0 和 O2 的优化级别返回不同的结果
- 在 c++ 中,rand() 在执行有调试和不带调试的程序时生成不同的结果
- C 程序结果说明
- 无法让程序在C++输出正确的结果
- 为什么在我的程序中输入另一个输入会给我不同的结果
- 为什么这个C++程序在代码::块和在线 IDE 之间返回不同的结果?
- 简单的程序比较阵列运行但给出不正确的结果
- 为什么一个简单的C++程序会有错误的结果?是 #define 引起的吗?
- 为什么程序显示的值大于结果或垃圾值
- 未经GCC优化而编译的简单C++程序不会产生预期的结果
- 由 startproc 运行的程序的 QDir::homePath() 的非预期结果
- 该程序应该创建一个带有结果的输出文件,但文件中没有任何内容
- 如何在VS 2017 C++Win32应用程序中打印出gethostname结果
- 我的程序打印出与预期不同的结果
- 相同的AVX2程序在gcc和msvc中产生不同的结果
- 比较CPP和Python上的程序结果
- Xcode C++程序结果未显示正确答案