【发布时间】:2021-04-10 18:52:34
【问题描述】:
我对数组做了选择和冒泡排序,选择排序没问题,但是冒泡排序从数组的第(5)个元素开始排序,从{0到4}不排序
#include <stdio.h>
#include <stdlib.h>
//// Makeing a swaping Function/////
void swap(int* x,int* y)
{
int temp= *y;
*y= *x;
*x= temp;
}
//// Makeing a sorting Function selection_ sort/////
void selection_sort_elements(int array[],int len)
{
int i,j;
int flag =1;
for (i=0;i<len;i++)
{
printf("Number of Iteration: %d \n",i);
for(j=i+1;j<len;j++)
{
if(array[i]>array[j])
{
swap(&array[i],&array[j]);
}
}
}
}
//// Makeing a sorting Function Bubble sort/////
void bubble_sort_elements(int array[],int len)
{
int i=0,j=0;
//int flag =1;
for (i = 0; i < len ;i++)
{
printf("Number of Iteration: %d \n",i);
//if(flag == 0){
// return;
//}
//flag=0;
for(j = i+1 ; j < len ;j++)
{
if(array[j] < array[j-1])
{
// flag=1;
swap(&array[j],&array[j-1]);
}
}
}
}
int main()
{
int arr[10];
int i=0;
printf("Please Enter A Five Element Of The Array\n");
for (i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
printf(" You Entered The Array:");
for (i=0;i<10;i++)
{
printf(" %d ", arr[i]);
}
bubble_sort_elements(arr,sizeof(arr)/sizeof(arr[0])); // Calling Sorting Function
printf("\n Now We Sorted Your Array :");
for (i=0;i<sizeof(arr)/sizeof(arr[0]);i++)
{
printf(" %d ", arr[i]);
}
//Getting The max Number in the array and its position
printf("\n The MAX Number In The Array IS %d And it location is %d ", arr[(sizeof(arr)/sizeof(arr[0]))-1], sizeof(arr)/sizeof(arr[0])-1);
//Getting The Min Number in the array and its position
printf("\n The Min Number In The Array IS %d And it location is %d ", arr[0], sizeof(arr)/sizeof(arr[0])-sizeof(arr)/sizeof(arr[0]));
return 0;
}
我对数组做了选择和冒泡排序,选择排序没问题,但是冒泡排序从数组的第(5)个元素开始排序,从{0到4}没有排序 我为回复上传了图片
【问题讨论】:
-
用GCC 作为
gcc -Wall -Wextra -g调用来编译你的代码,改进你的代码以获得没有警告(见this C reference...)然后使用GDB 调试器来了解哪里出了问题在你的程序中。如果允许,请从现有的开源程序(如GNU bash 或github.com 上的许多其他程序...)中获取灵感。另请阅读bubble sort 上的维基百科和您的 C 编译器的文档
标签: arrays c sorting codeblocks