我正在尝试创建一个有两个选项的程序:查看和计算。现在我试图弄清楚如何将我的数组转换为函数,以便我可以多次进出来存储值。我还想将其视为一个可以多次查看值的函数。
我已经设法让计算部分在我的主程序中工作,现在我需要将它变成一个函数。其次,我如何创建第二个函数来查看它?
我的代码有点乱,请耐心等待。
#include <stdio.h>
#define LENGTH 10
int enterMeasurements();
int main(void)
{
char input;
int nrMeasurements=0;
int arrayTable[LENGTH] = {0};
//main menu
do
{
char input;
printf("\nMeasurement tool 1.0\n");
printf("V for (View)\n");
printf("E for (Enter Values)\n");
printf("C for (Compute Values)\n");
printf("R for (Reset Values)\n");
printf("Q for (Quit)\n");
printf("\nEnter input: ");
scanf(" %c", &input);
if(input == 'v' || input == 'V')
{
// function to print array values
printf("[ ]\n");
}
else if(input == 'e' || input == 'E')
{
// enter values here
nrMeasurements = enterMeasurements(arrayTable,nrMeasurements); // my function for entering values
}
else if (input == 'c' || input == 'C')
{
// enter function to calc min, max and avg and prints it.
printf("[ min max avg ]\n");
}
else if (input == 'r' || input == 'R')
{
// enter function that erase the entire array.
printf("[ erase array ]\n");
}
}
while (input !='q' && input != 'Q');
return 0;
}
int enterMeasurements()
{
int enterMeasurements(int arrayTable[], int nrMeasurements)
{
int i;
for (i = 0; i < LENGTH; i++)
{
printf("Enter Measurement #%i (or 0): ", i+1);
scanf("%d", &arrayTable[i]);
if (arrayTable[i] == 0 )
break;
}
return i;
}
最佳答案
为了帮助您入门(您确实应该 read a beginners book on the subject ),我将向您展示 printArray
函数。
首先,printArray
函数需要知道要打印的实际数组。它还需要知道数组中元素的数量。这可以通过两种方式完成:全局变量(没有人真正推荐)或使用函数参数。
您首先需要告诉编译器该函数需要参数:
void printArray(int *array, size_t numElements)
上面一行告诉编译器 printArray
函数有两个参数:一个称为 array
,是一个指向 int
的指针(数组在传递给函数时“衰减”为指向其第一个元素的指针),以及一个名为 numElements
且类型为 size_t
的参数(对于大小而言,这是一个很好的类型)以及元素的数量和类似的东西)。使用 void
关键字声明该函数不返回任何内容。
声明的参数可以像函数范围内的任何其他变量一样在函数内部使用,并且实际上就像函数内部定义的任何其他局部变量一样。所以你可以像这样使用它们
void printArray(int *array, size_t numElements)
{
for (size_t i = 0; i < numElements; ++i)
{
printf("array[%d] = %d\n", i, array[i]);
}
}
要调用此函数,您需要传递数组和元素数量,就像将参数传递给任何其他函数(如 scanf
或 printf
):
printArray(arrayTable, i);
请注意,该函数不返回任何内容,这意味着您不能在 printf
或任何其他需要值的表达式中使用它。
当然,您还应该使前向函数原型(prototype)声明与实际函数定义相匹配。
关于c - 将我的数组转换为函数并创建第二个函数来打印它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39610610/