我写了这段代码,里面有t测试用例,每个测试用例都会输入 3 位数字。我希望这个程序识别这三个输入中的最小元素,然后打印最小元素。我应该怎么办?
int main()
{
int t;
cin>>t;
while(t--)
{
for(int i=0;i<3;i++)
{
int n;
cin>>n;
}
}
return 0;
}
我写了这段代码,里面有t测试用例,每个测试用例都会输入 3 位数字。我希望这个程序识别这三个输入中的最小元素,然后打印最小元素。我应该怎么办?
int main()
{
int t;
cin>>t;
while(t--)
{
for(int i=0;i<3;i++)
{
int n;
cin>>n;
}
}
return 0;
}
这是一个使用运行最小值查找最小值的示例:
#include <iostream>
int main()
{
unsigned int test_case_quantity = 0U;
std::cin >> test_case_quantity;
while(test_case_quantity--)
{
char minimum;
std::cin >> minimum;
char digit;
std::cin >> digit;
if (digit < minimum) minimum = digit;
std::cin >> digit;
if (digit < minimum) minimum = digit;
std::cout << " minimum: " << minimum << "\n";
std::cin.ignore(100000, '\n'); // Synchronize to next line.
}
return 0;
}
对于更健壮的程序,您可以添加对读取的字符实际上是数字的验证。
我们可以使用一个额外的变量 saysmall并且当我们输入第一个数字时,我们可以将第一个数字分配给 ,small在所有其他情况下,我们可以比较当前数字是否小于small,如果是则更新small。最后在循环之外,我们可以打印 small 的值,这就是我们的答案。
int main()
{
int t;
cin>>t;
while(t--)
{
int small;
for(int i=0;i<3;i++)
{
int n;
cin>>n;
if (i == 0)
small = n;
else {
if (n < small)
small = n;
}
}
cout<<"Smallest number is :" << small;
}
return 0;
}
输入 :
1
10 2 3
输出 :
Smallest number is :2
流程:首先将值 10 分配为小,然后对于下一个元素 2,我们比较 2 是否小于在这种情况下为 10 的小,然后将小重新分配给 2。然后将这个小与 3 进行检查,但是2 < 3,所以小值保持不变。
我假设只有整数值作为输入。