0
我有一个赋值,我必须使用指针来查找数组的最大和最小元素。方向说你必须为所有东西使用指针,但是如果你可以创建变量然后不使用它们并指向指向它们的指针,或者如果在程序中实际上不能是一个常规变量声明,那么它就没有说清楚。C++查找数组的最大元素仅使用指针
我已经做了整个任务,通过声明变量,然后指向指向它们的指针,但为了安全,我正在重做它没有变量。
我唯一遇到的麻烦是做一个for循环,只有指针,因为没有变量设置为0,我可以使指针指向并获得0的内存地址来启动计数器。
我只是这样做:
int i = 0;
int *counterptr = &i;
cout << "Please input the array values" << endl;
for (*counterptr ; *counterptr < 10; *counterptr += 1)
{
}
但因为我不能让变量i指向我不知道怎么弄的0地址内存使用的指针。这是我现在所拥有的,但我不知道counterptr
等于什么。
float nums[10];
int *counterptr = ;
float *maxptr, *minptr, *difference;
maxptr = &nums[0];
minptr = &nums[0];
cout << "Please input the array values" << endl;
for (*counterptr ; *counterptr < 10; *counterptr += 1)
{
cin >> nums[*counterptr];
if (nums[*counterptr] > *maxptr)
{
maxptr = &nums[*counterptr];
}
if (nums[*counterptr] < *minptr)
{
minptr = &nums[*counterptr];
}
}
任何帮助,将不胜感激谢谢。
谢谢你这个作品完美,但我不明白为什么它的作品。如果你有时间可以再解释一下。当你设置counterptr = nums中nums的值时,它实际上将它设置为(因为它有一个数组,它有10个不同的值,你没有放置索引)。此外,为什么不设置counterptr =&#$获得它的内存地址,以便它在for循环中执行counterptr ++时不会更改意外的num的值? –
@BenjaminDagg nums相当于#num [0],counterptr只是遍历列表中的一个指针,最初指向第一个元素,然后在增加时指向第二个元素,依此类推。希望澄清。 –