我正在为这个程序的最后一点苦苦挣扎,我需要将数组传递给两个不同的函数,但我不知道该怎么做。
我得到的唯一错误发生:这里:
input(array[20]);
calculate(array[20],&pairs);
和这里:
//exit,
exit;
除此之外,它应该按照我需要的方式工作,我想出了如何在普通变量上使用指针,但是数组的行为不同,我不知道该怎么做......
文档已经完成了一半,我仍然需要在描述概述的末尾添加循环,但我只需要传递数组的帮助。
涉及我的退出行的错误也与问题无关,但如果您知道一个很好的修复程序!
/*
Description: Do not use global variables. Pass your arguments by value and
by reference. Using arrays and modular programming techniques,
write a C program that will allow a user to populate an array
with integers, and then compute and print out the number of
adjacent pairs in the array (i.e. the number of occurrences where
an array element is the same as its neighbors). For example, if
the array contained [2,3,3,4,52,52,4,4,4,4,7,7,1], the number of
adjacent pairs is 6. The program should give the user the option
of examining more than one array (i.e. loop). Assume the array has
a max. of 20 elements. The main() function should primarily be
responsible to direct the flow of logic. That is: use one
function to obtain input (pass by reference), another function to
do processing (pass by value), and perhaps a third function to do
output (pass by value). The main() function should call the input
function and the processing function.
*/
//Include statements.
#include <cstdlib>
#include <iostream>
#include <math.h>
//Standard namespace.
using namespace std;
void input (int array[20]); //Used when user inputs the numbers.
void calculate(int array[20], int *pairs); //Used to calculate the matches.
void output(int *pairs); //Used to output the number of pairs.
int main(void)
{
int array[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
char quit;
start:
int pairs = 0;
input(array[20]);
calculate(array[20],&pairs);
output(&pairs);
//Ask the user if they want to exit
printf("\nWould you like to continue testing my project, or exit?");
printf("\nTo exit input: 'N' or 'n'. To continue testing input anything else.");
//store their input in variable: exit
scanf("%s",&quit);
//If they want to exit...
if (quit == 'N' || quit == 'n')
{
//exit,
exit;
}
//otherwise,
else
{
//clear the screen
system("cls");
//and go back to the start.
goto start;
}
}
void input(int array[20])
{
int count = 0;
for (count;count<20;count++)
{
printf("Enter values . . . \n");
scanf("%i", &array[count]);
}
}
void calculate(int array[20], int *pairs)
{
int counter = 0;
for (counter;counter<19;counter++)
{
if (array[counter] == array[counter+1])
*pairs+=1;
}
}
void output(int *pairs)
{
printf("Number of pairs: [%i]\n", *pairs);
}