I have the following code which can compile, build and run, however, stack around the variable 'Output' was corrupted and the PrintTable function is unable to produce the output I want.Please refer to the output.gif where the last Input Signals are different from the 1st and 2nd set of Input Signals ??
Thank you.
insertCode:#include <stdio.h> void InputSignal(int size, float *pInput); void FilterProcess (int size, float *pInput, float *pOutput); void PrintTable(int size, float *pInput, float *pOutput); void main(void) { int size; float Input[20], Output[20], *pInput, *pOutput; printf("Enter the total number of digital signals to be processed :"); scanf("%d", &size); pInput=Input; pOutput=Output; InputSignal(size, &pInput); FilterProcess(size, &pInput, &pOutput); PrintTable(size, &pInput, &pOutput); } void InputSignal(int size, float *pInput) { int i; printf("Enter the %d digital signals :", size); for (i=0;i<size; i++) { scanf("%f", (pInput+i)); } printf("Signal No Input Signals\n"); printf("--------- -------------\n"); for (i=0; i<size; i++) printf("%d%20.2f\n", i+1, pInput[i]); } void FilterProcess (int size, float *pInput, float *pOutput) { int i; printf("Signal No Input Signals Output Signals\n"); printf("--------- ------------- --------------\n"); for (i=0; i<size; i++) { if (i==0) pOutput[i]=pInput[i]; else { if (i==size-1) { pOutput[i]=pInput[i]; } else pOutput[i]=(pInput[i-1] + pInput[i] + pInput[i+1])/3.0; } printf("%5d%18.2f%18.2f\n", i+1, *(pInput+i), *(pOutput+i)); } } void PrintTable(int size, float *pInput, float *pOutput) { int i; printf("Signal No Input Signals Output Signals\n"); printf("--------- ------------- --------------\n"); for (i=0; i<size; i++){ printf("%5d%18.2f%18.2f\n", i+1, pInput[i], pOutput[i]); } }



LinkBack URL
About LinkBacks



