资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

c语言函数调用逆位输出 c语言逆序输出

用C语言写 字符串逆序输出

逆序输出有很多种,具体的实现方法取决于你题目的要求

创新互联公司是一家业务范围包括IDC托管业务,虚拟主机、主机租用、主机托管,四川、重庆、广东电信服务器租用,服务器托管,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。

1. 如果只是要求逆序输出,那么可以采用类似的方法:

void reverse(char *s)

{

if(*s=='\0')

return;

reverse(s+1);

printf("%c",*s);

}

这种方法在s很长的情况下会一直递归到底,不是很好。

2. 如果需要将字符串整个逆序在函数外面输出,那么可能希望采用返回字符串指针的方式;实现如下:

char * reverse( char* s )

{

static char *p = s+strlen(s)-1; //p是一个静态变量,指向当前递归层处理的字符串尾,而s指向字符串头

if(s p)

{

char c = *p; //交换头尾字符

  *p = *s;

 *s = c;

p--; //尾向前挪一个

reverse(s+1); //相当于头向后挪一个

}

return s;

}

3.1 当然,有的时候,并不需要reverse函数本身递归,而是可以借助一些辅助的递归函数,比如说:

void reversehelp(char * head, char * end)

{

if (head end)

{

char c = *head;

*head = *end;

*end = c;

reversehelp(++head, --end);

}

}

然后在调用时像这样调用:

char * reverse(char * s)

{

char * end = s + strlen(s) - 1;

reversehelp(s, end);

return s;

}

3.2 类似的辅助函数还可以采用一个字符串指针和一个长度参数的方式,如下例:

void reversehelp( char* s, int n )

{

if ( n 1 )

{

char c = s[n-1];

s[n-1] = s[0];

s[0] = c;

reversehelp( s+1, n-2 );

}

}

然后在调用时如下:

char *reverse(char *s)

{

reversehelp( s, strlen(s) );

return s;

}

C语言,用调用函数逆序输出10个数

代码里有一些问题,看注释。

#includestdio.h

int nixu (int n,int a[]);

void main()

{

int a[10],i;

printf("please input 10 numbers\n");

for(i=0; i10; i++)

scanf("%d",a[i]);    /*数组10个元素,最大下标只能到9,a[10]越界;另外a[i]才是需要输入的元素,而不是恒定某一个元素*/

nixu (10, a);

for(i=0; i10; i++)    /*输出数组同样也要循环*/

printf("%d  ",a[i]);    /*数组10个元素,最大下标只能到9,a[10]越界*/

}

int nixu (int n, int a[])    /*函数定义参数不能和局部变量重名*/

{

int i,k=(n-1)/2,t;    /*运算符/比-优先级高,要加括号*/

for(i=0; i=k; i++)

{    /*逆序过程只要一重循环就可以了*/

t=a[i];

a[i]=a[n-i-1];    /*尾部对应的数组下标要找对*/

a[n-i-1]=t;

}

return 0;    /*返回随便一个值就可以,调用的地方不需要函数返回值,不能返回数组首地址*/

}

用C语言, 定义一个函数,实现数组调用的逆序输出

你的go 函数 里有 return k; 在最后的pfintf里执行完go函数的时候 k=-1(跳出循环执行return k;)被输出 了。

#includestdio.h

#define N 8

int go(char a[]){

int k;

for(k=N-1;k=0;k--){

printf("%2d",a[k]);

}

return k;

}

main(){

char b[]={3,2,5,1,7,4,9,0};

go(b);

}

改成这样就可以了。


网站标题:c语言函数调用逆位输出 c语言逆序输出
转载来于:http://cdkjz.cn/article/docccip.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220