#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