这是一个家庭作业
我的程序似乎根本没有进入任何 for 循环。在某一时刻,我拥有了每个函数,main
并且正在对 2 个全局变量进行操作,而无需通过引用或值传递,并且一切正常。从那时起,我已经将我的函数移出main
并通过引用传递一个数组,并将该数组的长度传递给每个函数,我得到printf
了循环之外的语句,但除此之外没有任何执行。
根据 GDB,我的程序以退出代码退出046
。
该程序很简单,它将一个值设置为我的数组的长度,然后提示用户输入整数值来填充该数组。然后我对数组进行排序,然后打印数组,最后调用getMax(int *array, int n)
将最大值打印到屏幕上。
输出示例如下:
Enter the number of elements to be sorted:
3
Enter 10 integers in any order:
2
1
4
Inside sortArray
Inside sort and print
inside setMAx
The largest value in the array is: 0
我好像把什么东西弄坏了,我不应该弄乱它。这是我的尝试。
感谢您的帮助,我将坐在这里试图找到我的错误。
#include <stdio.h>
void printArray (int *array, int n);
void sortArray (int *array, int n);
void fillArray (int *array, int n);
void getMax (int *array, int n);
int main(void){
int array[10],n = 0;
fillArray (array, n);
sortArray (array, n);
printArray (array, n);
getMax (array, n);
return 0;
}
void sortArray(int *array,int n){
printf("Inside sortArray\n");
int temp, c = 0, c2;
for(c=0;c<n;c++){
printf("inside for loop SA\n");
for(c2=c;c2<n;c2++){
if(array[c]>array[c2]){
temp=array[c];
array[c]=array[c2];
array[c2]=temp;
}
}
}
}
void printArray (int *array, int n){
int c = 0;
printf("Inside sort and print\n");
for(c=0;c<n;c++){
printf("\t%d",array[c]);
}
printf("\n");
}
void fillArray (int *array, int n){
int c = 0;
printf("Enter the number of elements to be sorted:\n");
scanf("%d",&n);
printf("Enter 10 integers in any order: \n");
for(c=0;c<n;c++){
scanf("%d", &array[c]);
}
}
void getMax (int *array, int n){
printf("inside setMax\n");
int temp = 0, i = 0;
for (i = 0;i<n;i++){
printf("temp: %d", temp);
if(array[i]>temp)
temp=array[i];
}
printf("\nThe largest value in the array is: %d\n", temp);
}