C++ 已解决以下给定问题,但无法获得最终输出

C++ 已解决以下给定问题,但无法获得最终输出,c++,algorithm,c++14,C++,Algorithm,C++14,抽屉里有n种不同颜色的袜子。第i种颜色的袜子数量由a[i]给出,其中a是n个元素的数组。托尼想从抽屉里拿出k双袜子。然而,他看不到他正在挑选的袜子的颜色。你必须告诉托尼一次从抽屉里挑选袜子的最低数量是多少,这样他就可以在看不到袜子颜色的情况下,绝对确定自己至少有k双相配的袜子 我的解决方案: #包括 使用名称空间std; 类解决方案{ 公众: int find_min(int a[],int n,int k){ 整数总计、总计双数、总计双数; 对于(int i=0;i>t; 而(t--){ in

抽屉里有n种不同颜色的袜子。第i种颜色的袜子数量由
a[i]
给出,其中a是n个元素的数组。托尼想从抽屉里拿出k双袜子。然而,他看不到他正在挑选的袜子的颜色。你必须告诉托尼一次从抽屉里挑选袜子的最低数量是多少,这样他就可以在看不到袜子颜色的情况下,绝对确定自己至少有
k双相配的袜子

我的解决方案:

#包括
使用名称空间std;
类解决方案{
公众:
int find_min(int a[],int n,int k){
整数总计、总计双数、总计双数;
对于(int i=0;i>t;
而(t--){
int n,k;
cin>>n;
int a[n];
对于(inti=0;i>a[i];
cin>>k;
溶液obj;

cout问题是因为您试图将
int
赋值给
int*
类型的变量:
a=(int)total\u socks;
我认为您想要的是
a=(int*)total\u socks;
。但是,由于您不再使用该变量,这仍然是毫无意义的(除非您确实计划返回它).其余的人也是如此,
n
k

您的代码还有另一个问题,函数
int find_min(int a[],int n,int k)
是返回类型
int
。但是在函数体中,您没有返回任何内容。这将导致未定义的行为。因此,请确保在该函数中返回某些内容

附加:确保初始化所有变量。此处:
inttotal,total\u pairs,total\u socks;
您不会将其初始化为任何值,因此稍后,它可能不会提供您所需的结果,因为它已包含垃圾

尽量不要使用
使用名称空间std;
,因为这不是一个好的做法。
#include
也是如此。包含所需的文件,并使用
操作符访问它们的名称空间


无关:您是否只需要为该函数创建一个类?看起来您不需要(通过查看您提供的代码)。只需将该函数保留在全局命名空间中,但如果您希望它位于命名空间中,请将其放置在命名空间中(即:
命名空间解决方案{…}
).

函数
find_min
调用未定义的行为,因为其中没有
return
语句。另外,向未初始化的变量添加内容也不好。您认为
a=(int)如何total_socks;
正在做什么?
a
int*
total_socks
int
,你不能这样把一个分配给另一个,最好不要使用
名称空间std
-始终尝试使用例如
std::cout
来代替。在
a中完成的
重新解释(int*)total_socks
有问题。
a=&total_socks
*a=total_socks
将在不使用强制类型转换的情况下编译,但赋值最终毫无意义,因为它没有任何用途。@TedLyngmo是的。我刚刚回答了OP的错误。我建议您描述
a=(int*))total_socks;
真的可以让OP从头痛中解脱出来:-)@TedLyngmo编辑!;)谢谢您的时间、努力和话语。!!@D-RAJ