【发布时间】:2018-08-24 14:07:03
【问题描述】:
我有一个 main 函数,它调用 readNumbers 来创建一个由用户提示的动态分配的长度数组。然后,这个数组被传递给 printNumbers,它打印元素的索引,后跟一个空格,然后是对应的元素值,然后是一个新行。
我的代码在算法上是正确的,但是,我的老师希望将输出打印在 main 内部,而不是在函数内部。但是,我很困惑,因为我被告知 printNumbers 必须有一个返回类型 void - 所以这个函数不会打印出一些东西以便你可以看到这个输出吗?如何在 main 中打印输出?
主要:
#include <iostream>
int * readNumbers(int n);
void printNumbers(int *numbers, int length);
int main (void)
{
int length;
std::cout<<"Enter your array length: "<<std::endl;
std::cin>>length;
int *arr=readNumbers(length);
printNumbers(arr,length);
delete[] arr;
return 0;
}
函数文件:
#include <iostream>
int * readNumbers(int n)
{
int *arr=new int[n]; //array dynamically allocated
for (int i=0; i<n; i++)
{
std::cout<<"Enter value: "<<"\n";
std::cin>>*(arr +i);
}
return arr;
}
void printNumbers(int *numbers, int length)
{
for (int i=0; i<length; i++)
{
std::cout<<i<<" "<<*(numbers+i)<<std::endl;
}
}
【问题讨论】:
-
我认为您需要再次询问您的老师他们的真正含义 - 要么在
printNumbers函数内打印,要么将循环移动到main并完全放弃printNumbers函数。有那个功能没有意义,但是在main里面打印。 -
简单:将
printNumbers调用替换为函数中使用的实际代码。 -
"如何在 main 中打印输出?"您只需从函数
printNumbers中取出该循环并将其放入main -
您的老师希望您编写一个名为“printNumbers”的函数,该函数不打印数字?那么它应该以 Dijkstra 的名义做什么呢?范丹戈?
-
糟糕的教学又来了。
标签: c++ arrays pointers io void