
正文
c语言调用函数逆序 c语言如何实现逆序输出
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
初学C语言 调用函数的方法排列出10个字符的逆序
#includestdio.h
int main()
{
void turn(char t[]);
int i,j;
char a[10];
printf("正序:");
for(i=0;i10;i++)
{
scanf("%c",a[i]);
}
printf("\n");
turn(a);
printf("逆序:");
for(j=0;j10;j++)
{
printf("%c",a[j]);//j
}
return 0;
}
void turn(char t[])//指针,[]不要加数据
{
int i,j;
char c;
for(i=0,j=9; i5;i++,j--)//只要 5次
{
c= t[i];//你这逻辑不清
t[i]=t[j];
t[j]=c;
}
}
相关问答
Q1: C语言,用调用函数逆序输出10个数
代码里有一些问题c语言调用函数逆序,看注释。
#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]越界c语言调用函数逆序;另外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++)
{ /*逆序过程只要一重循环就可以c语言调用函数逆序了*/
t=a[i];
a[i]=a[n-i-1]; /*尾部对应的数组下标要找对*/
a[n-i-1]=t;
}
return 0c语言调用函数逆序; /*返回随便一个值就可以,调用的地方不需要函数返回值,不能返回数组首地址*/
}
Q2: 用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);
}
改成这样就可以了。
Q3: C语言怎么用函数把一个字符串逆序存放,比如说原字符串是abcd,怎么将他改为dcba?
我以前写了这个程序。略粗糙
源代码:
#include stdio.h
#include string.h
#define ARR_SIZE 80 //字符串最大长度
int Inverse(char a[]);
void main(void)
{
char str[ARR_SIZE]={0};
printf("P199 6.12\n"); //题号
printf("---------------------Inversed sequence---------------------\n");
printf("\nPlease enter a charstring:\n\n");
gets(str); //输入一个字符串
Inverse(str); //调用函数逆序存放
}
int Inverse(char a[])
{
char b[ARR_SIZE]={0};
int i;
int maxsize;
maxsize=strlen(a)-1; //得到最后一个字符位置
for (i=0;istrlen(a);i++) //依次交换存放
{
b[maxsize]=a[i];
maxsize--;
}
printf("\nThe changed result is:\n\n");
puts(b); //输出交换存放结果
printf("\n");
}
c语言调用函数逆序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言如何实现逆序输出、c语言调用函数逆序的信息别忘了在本站进行查找喔。






