C语言里面我要定义一个数组,然后调用这个数组到另一个函数里面去用冒泡排序法排序 要怎么搞啊 在线等
C语言里面我要定义一个数组,然后用指针的方式,调用这个数组到另一个函数里面去,用冒泡排序法排序,要怎么搞啊在线等...
C语言里面我要定义一个数组,然后用指针的方式,调用这个数组到另一个函数里面去,用冒泡排序法排序,要怎么搞啊 在线等
展开
2个回答
展开全部
#include <stdio.h>
int *sort(int *s,int n) //给定两个参数,第一个数组的有地址 第二个数组长度 返回排序后数组的首地址
{
int i,j;
int t;
for(i=1;i<=n;i++)
for(j=0;j<n-i;j++)
{
if(s[j]>s[j+1])
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
return s;
}
int main()
{
int i;
int a[10]={9,8,7,6,5,4,3,2,1,0};//定义一个数组
int *b; //用b来接收排序后的首地址
b=sort(a,10); //得到排序后的首地址
for(i=0;i<10;i++) //输出结果
printf("%d ",b[i]);
return 0;
}
展开全部
void maopao( char *str )
{
/*函数体实现*/
}
int main()
{
……
int str[100] = {0};/*定义及初始化*/
maopao( str );/*调用*/
……
}
追答
#include<stdio.h>
void sq( int a[] )
{
int i , j , tmp;
/*建议不要省略花括号,养成良好代码习惯*/
for( i =1 ; i < 5 ; i++ )
{
for ( j = 0 ; j <= 5-i ; j++ )
{
if( a[j] > a[j+1] )
{
tmp = a[j] ;
a[j] = a[j+1] ;
a[j+1] = tmp;
}
}
}
for( i = 0 ; i < 5 ; i++ )
{
//printf("%d" ,a+i );
printf("%d" , *(a+i) );
/*
a只是个首地址,a+1是不错的
但是a+i也是个地址
你要打印值应该用‘*’进行取值
最好是用a[i]
*/
}
printf("\n");/*输出好看些*/
}
void main()
{
int a[5] , k ;
for ( k = 0 ; k < 5 ; k++ )
{
/*
虽然这样也可以,但是代码可读性就不好看了
如果代码较多的话,通过a+步长来取地址容易让别人看不懂
平时练习时要养成良好的代码风格
*/
scanf("%d" ,a+k );
}
printf("\n");
sq(a);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |