标题:简单的冒泡程序求解!!
只看楼主
shixian
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2010-9-28
结帖率:100%
已结贴  问题点数:20 回复次数:5 
简单的冒泡程序求解!!
就是定义一个长度不限的一维数组,输入一个n,然后确定数组a[n]的长度,也就是说怎么定义其长度是变量的??书上有说“如果在被调用的函数(不包括主函数)中定义数组,其长度可以是变量或非常量的表达式”但是程序编好了,还是出现错误说不知道数组的长度。我编的程序。求解!!
#include<stdio.h>
int main()
{
 void func(int);
 int n;
 scanf("%d",&n);
 func(n);
 return 0;
}
 void func(int n)
 {
 int a[n];
 int i,j,t;
 for(i=0;i<n;i++)
 scanf("%d",&a[i]);
 printf("\n");
 for(j=0;j<n;j++)
     for(i=0;i<n-j;i++)
         if(a[i]>a[i+1])
         {t=a[i];a[i]=a[i+1];a[i+1]=t;}
for(i=0;i<10;i++)
printf("%5d",a[i]);
}
搜索更多相关主题的帖子: 求解 冒泡 
2010-09-28 14:07
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
得分:6 
我记得定义数组时一定要用常量!!!不能用变量!不知道你是不是记错了?
2010-09-28 14:15
shixian
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2010-9-28
得分:0 
以下是引用Crocodile_JX在2010-9-28 14:15:11的发言:

我记得定义数组时一定要用常量!!!不能用变量!不知道你是不是记错了?

那怎样编一个函数,就是随意输入数组长度,然后排序出来!!
2010-09-28 14:16
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
得分:0 
#include<stdio.h>
#define max 5   /*用宏定义的方法,在这里改变数组的大小。*/
int main()
/*{
void func(int);
int n;
scanf("%d",&n);
func(n);
return 0;
}
void func(int n)   */
{
int a[max];
int i,j,t;
for(i=0;i<max;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<max;j++)
     for(i=0;i<max-j;i++)
         if(a[i]>a[i+1])
         {t=a[i];a[i]=a[i+1];a[i+1]=t;}
for(i=0;i<max;i++)
printf("%5d",a[i]);
getch();
}
2010-09-28 14:28
xinjinlong
Rank: 3Rank: 3
来 自:河南南阳
等 级:论坛游侠
帖 子:61
专家分:117
注 册:2010-1-19
得分:6 
方法1:你可以定义一个数组,例如为a[100],就是说你估计要输入的数n在你预定值内就可以了
方法2:就是用malloc:int *a=(int *)malloc(sizeof(int)*n);
但是记者到时候要释放:free(a);
2010-09-28 14:32
xuexibianc
Rank: 2
等 级:论坛游民
帖 子:35
专家分:34
注 册:2010-9-8
得分:6 
int a[n];不能这样定义。直接写int a[20]==就行了。
2010-09-28 15:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-321590-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.396141 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved