冒泡排序怎么写呀??

 

#include<stdio.h>

int temp;
void main(){
	int arr[];
	int m;
	scanf("%d",&arr[]);
	m=sizeof(arr);
	Bubblesort(arr,m);
}
int Bubblesort(int arr[],int n){
	for(int i=0;i<n-1;i++){
		for(int j=0;j<n-i-1;j++){
			if(arr[i]>arr[i+1]){
				temp=arr[i+1];
				arr[i+1]=arr[i];
				arr[i]=temp;
			}
		}
			printf("%d\n",arr[i]);
	}
	
}

为什么我的运行不了??

1.Bubblesort函数没有提前声明

2.数组的输入方式不正确。

3.temp不需要使用全局变量(虽然对代码功能没什么影响,但是不建议这么用)

代码修改如下:

#include<stdio.h>
void Bubblesort(int arr[],int n);
void main(){
	int arr[100];
	int i,m;
	printf("请输入数组元素个数:");
	scanf("%d",&m);
	for (i = 0; i < m; i++)
		scanf("%d",&arr[i]);
	
	Bubblesort(arr,m);
}
void Bubblesort(int arr[],int n){
	int i,j,temp;
	for(i=0;i<n-1;i++){
		for(j=0;j<n-i-1;j++){
			if(arr[i]>arr[i+1]){
				temp=arr[i+1];
				arr[i+1]=arr[i];
				arr[i]=temp;
			}
		}
		
	}
	for(i = 0; i < n;i++)
		printf("%d ",arr[i]);
	printf("\n");
}

#include "stdio.h"
void main()
{
    int a[10]={8,100,9,30,-10,32,89,76,91,12};
    int i,j,temp,k;
    for(i=1;i<10;i++)
    {
    	for(j=9;j>=i;j--)
    	{
    		if(a[j]<a[j-1]){
    			temp=a[j];
    			a[j]=a[j-1];
    			a[j-1]=temp;
    		}
    	}	
    }
    for(i=0;i<10;i++)
    	printf("%d\t",a[i]);
}

 

char arr[100] = {0};

scanf("%d",&arr[]);改为scanf("%s",arr);

for(int i=0;arr[i] !='\0';i++)

    m++;

 

if(arr[i]>arr[i+1]){

 

temp=arr[i+1];

 

arr[i+1]=arr[i];

 

arr[i]=temp;

这段将i改成j就行了

你这里scanf用法有些问题。建议你先把数组大小确定。不然这句话就有问题scanf("%d",&arr[]);这个地址就是无效的。若你想动态生成数组,则应使用malloc或者realloc

    int n;
    scanf("%d",&n);
    int arr[n];
    int i;
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }

 

#include<stdio.h>
int temp;
int Bubblesort(int arr[],int n){
	for(int i=0;i<n-1;i++){
		for(int j=0;j<n-i-1;j++){
			if(arr[j]>arr[j+1]){
				temp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
			}
		}
	}
	
}
int main(){
	int arr[10];
	int m;
	for(int i=0;i<10;i++){
		scanf("%d",&arr[i]);
	} 

	m=sizeof(arr)/sizeof(arr[0]);
	Bubblesort(arr,m);
	
	for(int i=0;i<m;i++){
		printf("%d\t",arr[i]);
	}
	return 0;
}

代码调整如上,就可以运行了,你写的代码有几个小问题,目前已经修正好了,万望采纳。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632