c语言冒泡排序求修改

img


请求帮我改正,谢谢大家万分感谢(凑字数)为什么要求字数30,我不理解

冒泡排序的for循环里还需要scanf?

img


***c

#include <stdio.h>
//冒泡排序
void BubbleSort(int arr[], int n)
{
int end = n;
while (end)
{
int flag = 0;
for (int i = 1; i < end; ++i)
{
if (arr[i - 1] > arr[i])
{
int tem = arr[i];
arr[i] = arr[i - 1];
arr[i - 1] = tem;
flag = 1;
}
}
if (flag == 0)
{
break;
}
--end;
}
}
int input(int arr[],int n)
{

printf("请输入数组元素:\n");
int i=0;
while(i<n)
{
    int tem=0;
    scanf("%d",&tem);
    arr[i]=tem;
    i++;
}
return 0;

}

int put(int arr[],int n)
{
int i=0;
while(i<n)
{
printf("%d ",arr[i]);
i++;
}
printf("\n");
return 0;
}

int main()
{
int n;
printf("请输入数字个数:\n");
scanf("%d",&n);
int arr[n];
input(arr,n);
printf("原数组:");
put(arr,n);
printf("排序后:");
BubbleSort(arr,n);
put(arr,n);
return 0;
}
***c