Dynamic 相同的输入不同的测试用例不同的答案
该程序用于确定数组中不等于1的元素数是否小于给定的整数“k”(程序输入)。 该程序接受一个输入't',即测试用例的数量,'n'作为数组中元素的数量,'k'在问题陈述中定义 t->测试用例 我的节目:Dynamic 相同的输入不同的测试用例不同的答案,dynamic,c++14,Dynamic,C++14,该程序用于确定数组中不等于1的元素数是否小于给定的整数“k”(程序输入)。 该程序接受一个输入't',即测试用例的数量,'n'作为数组中元素的数量,'k'在问题陈述中定义 t->测试用例 我的节目: #include<iostream> using namespace std; int main(){ int t; cin >> t; while(t--){ int n,k; cin >> n >
#include<iostream>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
int n,k;
cin >> n >> k;
int a[n];
for(int i=0;i<n && k>=0;i++){
cin >> a[i];
if(a[i]!=1)
k--;
}
if(k>=0)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
#包括
使用名称空间std;
int main(){
int t;
cin>>t;
而(t--){
int n,k;
cin>>n>>k;
int a[n];
for(int i=0;i=0;i++){
cin>>a[i];
如果(a[i]!=1)
k--;
}
如果(k>=0)
cout在您获取输入的循环中,您已经获取了条件“i=0”,即如果k变为小于0(在大于“k”的数字不等于1的情况下),那么它将脱离循环,但随后您给出了完整的数组(对于相同的测试用例)作为输入,但您的程序没有为其已移动的相同测试用例接受输入。不要将k>=0作为循环的中断条件
更正代码:
#include<iostream>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
int n,k;
cin >> n >> k;
int a[n];
for(int i=0;i<n;i++){ // change in this line
cin >> a[i];
if(a[i]!=1)
k--;
}
if(k>=0)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}
#包括
使用名称空间std;
int main(){
int t;
cin>>t;
而(t--){
int n,k;
cin>>n>>k;
int a[n];
对于(int i=0;i>a[i];
如果(a[i]!=1)
k--;
}
如果(k>=0)
回答问题并澄清“测试用例”的含义。此处没有测试代码,因此您需要明确您正在尝试的内容和期望的内容。您通常不会读取每个测试的所有n
元素。您可能会将上一个测试的剩余元素误认为下一个测试的开始。特别是,在导致no
答案的测试后,未来的读取将关闭。而ks@IGORTANDETNIK编辑了这个问题@jdv谢谢你告诉我需要帮助!!@user9440672如果答案有帮助,我会请你投票并点击旁边的复选标记,将其标记为有用的答案。声誉不够