今天给各位分享c语言输入输出反向的知识,其中也会对c语言中怎么反向输出进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、输入一个三位数,将它反向输出(用c语言)2、C语言。输入一个字符串按反方向存放,并将其输出。怎样编写这个程序?3、C语言:输入一个字符串,然后逆序输出4、C语言逆向输出5、C语言,输入一个字符串反向输出,为什么会这样?6、输入一个三位正整数,将它反向输出。用c语言编!
输入一个三位数,将它反向输出(用c语言)
#include stdio.h//递归法倒叙输出!
#include string.h
void main()
{
void reverse(char *s,int i,int j);
char s[100];
gets(s);
reverse(s,0,strlen(s)-1);
puts(s);
}
void reverse(char *s,int i,int j)
{
char c;
if(i=j)
return;
else
{
c=s[i],s[i]=s[j],s[j]=c;
reverse(s,++i,–j);
}
}
这个不止可以3个数哦!
C语言。输入一个字符串按反方向存放,并将其输出。怎样编写这个程序?
突发奇想,用堆栈和管道似乎解决这个问题更简单有效,而且不用考虑字符串长度:
#include fcntl.h
#include io.h
#include memory.h
#include stdio.h
#include string.h
#define szSTR 256
/*递归方式逆序存储字符串,将逆序内容写入fw底层流文件*/
void rev(char * src, int fw)
{
if (!src || fw 1) return ;
if (!*src) return ; /*如果字符串结束则返回*/
rev(src + 1, fw); /*递归到下一个字符地址*/
write(fw, src, 1); /*递归返回后将字符写入管道*/
}
/*反向函数,输入src,输出des*/
void strv(char * src, char * des)
{
int p[2] = {0, 0}; /*创建一对管道用于读写*/
_pipe(p, _O_BINARY, szSTR);
rev(src, p[1]); /*将输入内容反方向写入管道*/
close(p[1]);/*关闭管道*/
char * s = des; /*将管道内容输出到目标字符串*/
while(!eof(p[0])) {
read(p[0], s++, 1);
}
*s = 0; /*字符串结束标志写入*/
close(p[0]);/*关闭管道*/
}
int main(void)
{
char a[szSTR], b[szSTR];
do {
printf(“请输入一个字符串,输入exit结束.\n”);
scanf(“%s”, a);
strv(a, b);
printf(“反向存储:[%s]\n”, b);
}while(!strstr(a, “exit”));
return 0;
}
C语言:输入一个字符串,然后逆序输出
#include stdio.h
int main()
{ int len,i;
char str[100];
gets(str);
len=strlen(str);
for(i=len-1;i=0;i–)
printf(“%c”,str[i]);
return 0;
}
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C语言逆向输出
首先,很欣赏你的要求;然后我来讲讲我的思路,仅供参考:
思路(一):直接用int类型做,判断位数时,当然用循环从小到大循环,用”%”(模)的方式判断;你的第二第三个问题一起做比较好,用求模和整除的方式分割这个数,然后把分割的每一位数累加到另一个int类型上。
思路(二):用字符串做,用库函数strlen很容易判断位数,也很容易输出每位数,以及倒序;其实倒序更容易,只要倒着输出就行,不一定要重新放到另一个字符串中。
思路(三):用递归函数做,用一个int作为计数,一个char类型的用来逐个放置,控制好结束条件,即输入“\n”时结束,然后自然容易做到那3点。
其实,以上逆序的方法都可以换成对称的思路……
C语言,输入一个字符串反向输出,为什么会这样?
定义的字符串数组长度为20,而且并没有赋初始值。输入的字符串长度小,后面未赋值的部分就输出乱码了,一般就是“烫”。
解决方法:
方法一:在字符串数组的最后添加空字符,表示字符串的结束。
方法二:给字符串数组赋初始值,全部赋为空字符’\0’。
方法一代码:
#include stdio.h
#include string.h
int main()
{
printf(“input:\n”);
char a[20],b[20];
scanf(“%s”,a);
int n;
n=strlen(a);
int i;
for(i=0;in;i++)
{
b[i]=a[n-i-1];
}
b[i]=’\0′;//添加此行代码,字符串结尾添加空字符,表示字符串结束
printf(“%s\n”,b);
return 0;
}
方法二代码:
#include stdio.h
#include string.h
int main()
{
printf(“input:\n”);
char a[20],b[20]={‘\0′};//对字符串数组b[20]赋初始值,全部赋为空字符’\0’
scanf(“%s”,a);
int n;
n=strlen(a);
int i;
for(i=0;in;i++)
{
b[i]=a[n-i-1];
}
printf(“%s\n”,b);
return 0;
}
两种方法均可。
输入一个三位正整数,将它反向输出。用c语言编!
#include stdio.h
void main( )
{
int n,a,b,c;
scanf(“%d”,n);
a=n/100;
b=(n/10)%10;
c=n%10;
printf(“\n倒序输出结果:%d%d%d”,c,b,a);
getch( );
}
扩展资料:
将三位正整数反向输出的其他方法:
#includestdio.h
#includemath.h
int main( )
{
int a,b1,b2,b3 ;
scanf(“%d”,a);
if(a100||a1000) return 0;
b1=a/100;
b2=a%100/10;
b3=a%10;
if(b3==0b2==0)printf(“%d”,b1);
else if
(b3==0)printf(“%d%d”,b2,b1);
else
printf(“%d%d%d”,b3,b2,b1);
return 0;
}
关于c语言输入输出反向和c语言中怎么反向输出的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。