重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、打开Visual stdio软件,在空项目里新建一个c语言程序空文件:
目前创新互联已为上千多家的企业提供了网站建设、域名、虚拟主机、网站改版维护、企业网站设计、建德网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:
3、这里从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾,经过一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置,然后依次类推直到数组的最后一个数比较完,最后输出结果;
4、最后需要执行程序,按下crtl+F5弹出程序的执行结果,就可以看到排序后的结果了:
你说的嵌套定义和调用是什么意思?
2.应该是 swap 吧?假如你用的是局部变量,那函数调换的就是局部变量,这时传递进来的参数就没有被交换了。除了用全局变量,还可以用指针。
3.都是值传递,数组传递的是第一个元素的指针。
#include stdio.h
void fun(int *num)
{
int temp;
for(int i=0; i10; ++i)
for(int j=0; j10-i-1; ++j)
{
if(num[j]num[j+1])
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
void main()
{
int num[10]={3,2,4,1,5,6,4,3,9,8};
fun(num);
for(int i=0; i10; ++i)
printf("%-2d",num[i]);
}
//C语言示例代码如下
#include stdio.h
#define N 10
//冒泡排序(升序)
void bubble_sort(int a[],int n)
{
int i,j; //j表示趟数,i表示第j趟两两比较的次数
int tmp; //临时变量
for(i=0;in-1;i++)
for(j=0;jn-1-i;j++)
{
if(a[j] a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
//选择排序算法,按从小到大顺序
void select_sort(int *array,int n)
{
int i,j,k;
int tmp;
for(i=0;in-1;i++)
{
k=i; //开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素
for(j=i+1;jn;j++)
{
if(array[k] array[j]) //如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k
k=j;
}
//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置
if(k != i)
{
tmp=array[k];
array[k]=array[i];
array[i]=tmp;
}
}
}
int main()
{
int arr[N];
int i;
printf("输入数组元素: ");
for(i=0;iN;i++)
scanf("%d",arr[i]);
bubble_sort(arr,N); //调用冒泡排序函数
printf("输出排序后的数组元素: ");
for(i=0;iN;i++)
printf("%d ",arr[i]);
printf("\n输入数组元素: ");
for(i=0;iN;i++)
scanf("%d",arr[i]);
select_sort(arr,N); //调用选择排序函数
printf("输出排序后的数组元素: ");
for(i=0;iN;i++)
printf("%d ",arr[i]);
printf("\n");
return 0;
}
#includestdio.h
int fun(int *a,int n);
int main(void)
{ int a[30],n,i;
printf("n=");
scanf("%d",n); /*输入参与排序的数字的个数n*/
for(i=0;in;i++)
{ printf("a[%d]=",i);
scanf("%d",a[i]); /*依次输入这n个数*/
}
fun(a,n); /*调用自定义函数进行冒泡排序*/
for(i=0;in;i++) /*输出排序后的结果*/
printf("%d ",a[i]);
printf("\n");
}
int fun(int *a,int n)
{ int i,j,t;
for(i=0;in-1;i++) /*冒泡排序*/
for(j=0;jn-1;j++)
if(a[j]a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; }
/*如果后面的数小于前面的数,则将他俩交换次序*/
}