我在 main 下的输出不是我所期望的
My output under main is not what I am expecting
我的任务是编写一个程序,询问用户他/她想输入多少个整数。动态创建数组并接受来自用户的数字并将它们放入数组。将数组传递给函数以确定输入的最小数字。打印最小数字。在适当或可能的情况下使用指针表示法。
我觉得我掌握了数组和指针符号的传递(请随时纠正我,因为我总是渴望学习),但 main 函数下的输出不是我所期望的,或者可能是我应该期待的,但没有意识到。 这是我到目前为止所拥有的,但我坚持让它在用户中输出最小的值输入数组。
#include "stdafx.h"
void CreateValues (int [], int);
int FindSmallest(int [], int);
int _tmain(int argc, _TCHAR* argv[])
{
int numValues = 0;
cout << "How many values would you like to enter?" << endl;
cin >> numValues;
int *pArray = new int[numValues];
CreateValues (pArray, numValues);
FindSmallest(pArray, numValues);
delete[] pArray;
int i = 0;
i = FindSmallest(pArray, sizeof(pArray)/sizeof(pArray[0]));
cout<<"The smallest number in the array is "<<(*pArray + i)<<endl;
system("pause");
return 0;
}
void CreateValues (int pArray[], int numValues)
{
for (int i = 0; i < numValues; i++)
{
cout << "Please enter value #" << i+1<< endl;
cin >> *(pArray+i);
}
}
int FindSmallest(int pArray[], int numValues)
{
int index = 0;
int x = sizeof(pArray);
for (int i = 0; i < numValues; i++)
{
if (pArray[i] < pArray[index])
{
index = i;
}
}
return index;
}
任何可以提供的帮助将不胜感激。干杯!!
这个:
FindSmallest(pArray, numValues);
delete[] pArray;
int i = 0;
i = FindSmallest(pArray, sizeof(pArray)/sizeof(pArray[0]));
应该是这样的:
int i = 0;
i = FindSmallest(pArray, numValues);
delete [] pArray;
或者,再缩短一点:
int i = FindSmallest(pArray, numValues);
delete [] pArray;
我希望你能明白为什么在删除数组之前必须找到最小的值。
此外,sizeof(pArray)/sizeof(pArray[0])
是一个仅适用于静态分配数组的技巧。
请使用以下代码:
int i = 0;
i = FindSmallest(pArray, numValues);
cout<<"The smallest number in the array is "<<*(pArray + i)<<endl;
sizeof(pArray)/sizeof(pArray[0])
是错误的,因为pArray
是一个指针,所以你不能元素编号。
首先,为什么稍后使用 pArray
时会delete[] pArray
i = FindSmallest(pArray, sizeof(pArray)/sizeof(pArray[0]));
其次,您之前的FindSmallest(pArray, numValues);
已经完成了寻找最小值的工作,因此提到的i = FindSmallest(...)
是重复/丰富的。此外,您应该声明一个int
来捕获 FindSmallest()
的返回值。
int min = FindSmallest(pArray, numValues);
cout << "The smallest value is: " << pArray[min];
delete[] pArray;
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 期望文本输出而不是数字
- 这是循环击中两个输出,而不仅仅是我期望的输出
- 我在 main 下的输出不是我所期望的
- 将 true 重新定义为 false 时的期望输出是多少,反之亦然
- 期望输出带有指针和引用混合的代码
- 程序没有给出期望的输出.FIFO的错误实现