c++ - 当我给出一个以上的测试用例时,这显示错误的输出
问题描述
这是 codechef 一月挑战的第一个问题codechef。当我给出多个测试用例时,它给出了错误的输出。当我给出一个测试用例时,它是正确的。
my code:-
#include<iostream>
using namespace std;
int long long N;
int main()
{
int i,j, N,t,d,k,sum=0;
cin>>t;
for(j=1;j<=t;j++)
{
cin>>N>>k>>d;
for(i=0;i<N;i++)
{
int num;
cin >> num;
sum += num;
}
for(i=0;i<N;i++)
{
sum= int(sum/k);
if(sum>d)
{
cout<<d<<endl;
}
else
{
cout<<sum<<endl;
}
}
}
return 0;
}
解决方案
您的输出在错误的位置,它应该在测试用例循环内而不是在它之后。您还需要在每个结果后打印一个换行符
你的代码是这样的
for(j=1;j<=t;j++)
{
...
}
if(sum>d)
{
cout<<d;
}
else
cout<<sum;
但应该是这样的
for(j=1;j<=t;j++)
{
...
if(sum>d)
cout<<d<<'\n';
else
cout<<sum<<'\n';
}
如果您养成一致缩进代码的习惯,这样的错误就更容易发现。
另一个错误是您没有sum
为每个测试用例重置为零。你的循环也应该是这样的
for(j=1;j<=t;j++)
{
sum=0;
...
}
一些草率的错误。要成为一名程序员,您确实必须注意细节。
免费,这里有另一个提示。你不需要使用数组来解决这个问题。要将数字相加,您无需先将它们全部放入数组中,然后再将它们相加。您可以在输入它们时添加它们。
int sum = 0;
for (int i = 0; i < N; i++)
{
int num;
cin >> num;
sum += num;
}
推荐阅读
- arrays - XML中的结构数组没有包装节点?
- c - 为什么对来自传感器的数据使用环形缓冲区
- python - 如何在 Flask 应用程序中运行后台控制任务?
- node.js - 节点 setInterval() 太慢了
- python - 获取 subprocess.run 来创建文件?
- java - 重定向到从一个控制器到另一个控制器的 POST 请求 Spring Boot
- python - 尝试导入 plotly.express 但即使安装了 pandas 也会出现此错误: ImportError: Plotly express requires pandas to be installed
- substrate - 为 RMRK 运行同步时出现“状态数据库错误:预期的修剪模式:受约束”
- flutter - 如何在 Flutter 移动应用中构建 http 服务器作为后台服务?
- django - django rest 框架中是否有任何方法可以列出用户登录的所有设备?