冒泡排序的for循环里还需要scanf?
#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