C Function Help - Solve Issues with Void Function

  • Context: MHB 
  • Thread starter Thread starter Colton0117
  • Start date Start date
  • Tags Tags
    Function
Click For Summary

Discussion Overview

The discussion revolves around issues related to implementing a void function in C programming, specifically a function designed to insert zeros between elements of an input array. Participants are seeking help with coding requirements and troubleshooting their implementations.

Discussion Character

  • Technical explanation
  • Homework-related

Main Points Raised

  • One participant describes their requirement to create a void function called insert0 that takes an integer and two arrays as parameters, and expresses confusion about how to implement it correctly.
  • The participant shares their code, noting that the program works without the void function but fails when it is included.
  • Another participant points out a syntax error in the function header of insert0, suggesting that this may be a source of the problem.
  • A later reply acknowledges the syntax error but claims it was a minor issue and not the main problem with the implementation.
  • There is a mention that the function has not been called in the main function, which is identified as another potential issue.

Areas of Agreement / Disagreement

Participants have identified specific issues in the code, but there is no consensus on the overall problem or solution. Multiple viewpoints regarding the nature of the issues remain unresolved.

Contextual Notes

Participants have not fully resolved the dependencies on the function call in the main function and the initialization of the arrays, which may affect the program's execution.

Colton0117
Messages
5
Reaction score
0
I am having issues making my function work. If there is not a void function included, my program works as intended but sadly I need to have a function. I am at a loss as how to implement this type of function. The requirements are below and any help asap would be GREATlY appreciated!

Write a program that include the following function:
void insert0(int n, int a1[], int a2[]);

In the main function, ask the user to enter the length of the input array, declare the input and output arrays, read in the values for the input array, and call the insert0 function to compute the output array. The main function should display the result of the output array.
Enter the length of the array: 5
Enter the elements of the array: 3 4 9 1 4
Output: The output array is: 3 0 4 0 9 0 1 0 4 0

My code:

Code:
#include <stdio.h>

void insert0(int n, int a1[], int a2[]);

int main() {

int i = 0;
int n = 0;
int a1[n];
int a2[n * 2];

printf("Enter the length of the array: ");
scanf("%d",&n);

printf("Enter the elements of the array: ");

for(i = 0; i < n; i++){ //adds values to first array
        scanf("%d",&a1[i]);
}

//call function here

for( i = 0; i < n*2; i++){ //prints array 2
        printf("%d", a2[i]);
        }

void insert0 (int n, int a1[], int a2[]){//inserts 0's between each number
for(i = 0; i < n; i++){
        a2[i+i] = a1[i];
        a2[i+i+1] = 0;
        }
        return 0;
}
 
Last edited:
Technology news on Phys.org
Colton0117 said:
I am having issues making my function work. If there is not a void function included, my program works as intended but sadly I need to have a function. I am at a loss as how to implement this type of function. The requirements are below and any help asap would be GREATlY appreciated!

Write a program that include the following function:
void insert0(int n, int a1[], int a2[]);

In the main function, ask the user to enter the length of the input array, declare the input and output arrays, read in the values for the input array, and call the insert0 function to compute the output array. The main function should display the result of the output array.
Enter the length of the array: 5
Enter the elements of the array: 3 4 9 1 4
Output: The output array is: 3 0 4 0 9 0 1 0 4 0

My code:

Code:
#include <stdio.h>

void insert0(int n, int a1[], int a2[]);

int main() {

int i = 0;
int n = 0;
int a1[n];
int a2[n * 2];

printf("Enter the length of the array: ");
scanf("%d",&n);

printf("Enter the elements of the array: ");

for(i = 0; i < n; i++){ //adds values to first array
        scanf("%d",&a1[i]);
}

//call function here

for( i = 0; i < n*2; i++){ //prints array 2
        printf("%d", a2[i]);
        }

void insert0 (int n, int a1[], int a2[]); //inserts 0's between each number   <------ This line is the problem
for(i = 0; i < n; i++){
        a2[i+i] = a1[i];
        a2[i+i+1] = 0;
        }
        return 0;
}

Look carefully at the function header, the marked line, for your insert0 function you have syntax error on the line.
 
squidsk said:
Look carefully at the function header, the marked line, for your insert0 function you have syntax error on the line.

I have fixed that issue, although that was just a typo and not my actual problem.
 
Colton0117 said:
I have fixed that issue, although that was just a typo and not my actual problem.

OK, then what's wrong with your solution, other than you haven't called the function in main?
 

Similar threads

  • · Replies 25 ·
Replies
25
Views
3K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
20
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
1K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 29 ·
Replies
29
Views
3K
Replies
47
Views
5K
Replies
7
Views
2K