C语言怎么反序输出
7个回答
展开全部
最简单的反序输出,就是把数组反序输出。只需要从最大下标开始,向0下标循环输出就可以了。
比如将字符串(字符数组)反序输出的代码如下:
void reverse_output_str(char *str)
{
int len = strlen(str) -1;//得到最大下标
while(len >= 0)printf("%c", str[len--]); //反序输出直到str[0]
}
其它类的反序输出,也都可以归结为类似的情况。先把要输出的正序输出到一个数组,然后把这个数组反序输出。
比如把一个10进制数反序输出,即输入1234,输出4321,就可以采用类似的方式:
void reverse_int_output(int a)
{
char buf[20];
sprintf(buf, "%d", a);//将a转为字符串
reverse_output_str(buf);//调用刚才的函数反序输出。
}
展开全部
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
int main()
{
int i,j,k;
char str[80];
// for(i=0; i<80; i++)
// {
// scanf("%c",&str[i]);
// }t
//注意你的输入有问题
gets(str);
// for(i=0,j=strlen(str)-1; i<j; i++,j--)
// {
// k=i;
// i=j;
// j=k;
// }
for(i=strlen(str)-1; i>=0; i--)//改改循环体即可
{
printf("%c",str[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-18
展开全部
C语言反序输出字符源程序如下:
#include <stdio.h>
int main()
{
char s[100]="abcdefghijk";
int i;
for(i=0;s[i]!='\0';i++);
for(i-=1;i>=0;i--)
printf("%c",s[i]);
printf("\n");
return 0;
}
输入任意输入一个正整数,反序输出每一位源程序如下:
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
do
{
printf("%d", n % 10);
}while(n /= 10);
printf("\n");
return 0;
}
#include <stdio.h>
int main()
{
char s[100]="abcdefghijk";
int i;
for(i=0;s[i]!='\0';i++);
for(i-=1;i>=0;i--)
printf("%c",s[i]);
printf("\n");
return 0;
}
输入任意输入一个正整数,反序输出每一位源程序如下:
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
do
{
printf("%d", n % 10);
}while(n /= 10);
printf("\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//在你的源程序中作了一点修改,看注释
#include<stdio.h>
#include<string.h>
int main()
{ int i,j,k;
char str[80];
for(i=0;i<80;i++)
{
scanf("%c",&str[i]);
}
//前面的代码没有str字串的结束标志,下面的strlen函数可能会得不到正确的长度,这地方加一个字符串结束标志
str[79]='\0' ;
//如果不用上面这一句结束标志,下面不要使用strlen可以直接使用80
for(i=0,j=strlen(str)-1;i<j;i++,j--)
{
k=str[i]; //交换的是数组中字符的本身,而不是它们的序号
str[i]=str[j];
str[j]=k;
}
for(i=0;i<80;i++)
{
printf("%c",str[i]);
}
}
#include<stdio.h>
#include<string.h>
int main()
{ int i,j,k;
char str[80];
for(i=0;i<80;i++)
{
scanf("%c",&str[i]);
}
//前面的代码没有str字串的结束标志,下面的strlen函数可能会得不到正确的长度,这地方加一个字符串结束标志
str[79]='\0' ;
//如果不用上面这一句结束标志,下面不要使用strlen可以直接使用80
for(i=0,j=strlen(str)-1;i<j;i++,j--)
{
k=str[i]; //交换的是数组中字符的本身,而不是它们的序号
str[i]=str[j];
str[j]=k;
}
for(i=0;i<80;i++)
{
printf("%c",str[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-18
展开全部
#include<stdio.h>main(){int n,m=0;printf("输入一个整数:");scanf("%d",&n);while(n!=0){m=m*10;m=m+n%10;n=n/10;}printf("%d\n",m);}可以考虑步骤是怎么做到的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询