A. c语言编程 从键盘上输入一个字符串通过函数调用的方法使该字符串翻转 并输出这个翻转后的字符串
1 输入字符串;
2 调用函数进行翻转,可以通过将对称位置字符交换值实现;
3 输出结果。
代码如下:
voidrevers(char*s)
{
char*p=s,c;
while(*p)p++;
p--;
while(p>s)
{
c=*p;
*p=*s;
*s=c;
}
}
intmain()
{
chars[100];
scanf("%s",s);
revers(s);
printf("%s",s);
}
B. 用C语言,翻转字符串,(例如输入“ABCD”,则输出“DCBA”)!方法越多越好!!
【方法一】
//也是最简单的有点投机
#include <stdio.h>
int main(){
char str[]="ABCD";
int i;
for(i=3;i>=0;i--) printf("%c",str[i]);
return 0;
}
【方法二】
/*
用指针的,将第一个与最后一个互换,第二个与倒数第二个互换……直到逆置完成
*/
#include <stdio.h>
#include <string.h>
int main(){
char str[]="ABCD",*start,*end,t;
int len,i;
len=strlen(str);
start=str;
end=&str[len-1];
while(start<end){
t=*start;
*start=*end;
*end=t;
start++;
end--;
}
printf("REVERSED:\n");
for(i=0;str[i];i++) printf("%c",str[i]);
return 0;
}
【方法三】
//用堆栈的性质来实现
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXSTACK 100
char pop(struct stack *stk);
void push(char ch,struct stack *stk);
int empty(struct stack *stk);
struct stack{
int top;
char str[MAXSTACK];
};
int main(void)
{
int i,len_str;
char str[MAXSTACK];
struct stack s;
s.top=-1;
printf("\nInput the string please:");/*输入你要逆置的字符串e.g.“ABCD”*/
gets(str);
len_str=strlen(str);
for(i=0;i<len_str;i++)
push(str[i],&s);
printf("The disorder is:");
for(i=0;i<len_str;i++){
if(!empty(&s))
printf("%c",pop(&s));
}
getch();
return 0;
}
char pop(struct stack *stk){
return stk->str[stk->top--];
}
void push(char ch,struct stack *stk){
if(stk->top==MAXSTACK-1){
printf("\nOVERFLOW!\n");
exit(1);
}
else stk->str[++(stk->top)]=ch;
return;
}
int empty(struct stack *stk){
return (stk->top==-1);
}
还可以用递归的思想来解决该问题,这里就不多说了……
C. C语言中输入一个英语句子将它翻转后输出
完成!输入句子,回车换行。之后Ctrl+Z结束输入,支持句子和段落反转输出。size是最大字符数,我设的为30,你可以自己修改,也可以用realloc设成动态数组。有什么不懂得地方可以接着问我。
#include <stdio.h>
#include <malloc.h>
#include<string.h>
#define size 30
int main()
{
char *a;
int b;
a=(char*)malloc(size*sizeof(char));
scanf("%[^/n]",a);
b=strlen(a);
for(;b>0;b--)
printf("%c",a[b-1]);
printf(" ");
return 0;
}
D. 用C语言实现一个字符串的反序(如:“123”转换成“321”),要求时间复杂度O(1)
#include<stdio.h>
voidmain()
{
charstr[100];
inti=0;
printf("Inputastring:");scanf("%s",str);
printf("reversedstring:");
while(str[i])i++;
while(i)printf("%c",str[--i]);
printf(" ");
}
E. C/C++ C语言 二维数组 旋转 输出。
voidrotateArr(){
inttemp[ROW][COL],i,j,k;
for(i=0,j=COL-1;j>=0;i++,j--)
for(k=0;k<COL;k++)
{
temp[k][j]=arr[i][k];//temp作为临时数组,存放90度翻转后的arr数组
}
for(i=0;i<ROW;i++)
{
for(j=0;j<COL;j++)
{
printf("%5d",arr[i][j]=temp[i][j]);//把temp数组的内容逐个赋给arr数组,以改变arr数组的值,使得多次调用rotateArr函数时arr的值会不断改变
}
printf(" ");
}
printf(" ");
}
F. 位运算 C语言输入一个整数,把这个数的第三位到第五位翻转并输出,切记位运算
#include<stdio.h>
#include<string.h>
main()
{
int n;
scanf("%d",&n);
if ((n&16)==0)
printf("0");
else
printf("1");
if ((n&8)==0)
printf("0");
else
printf("1");
if ((n&4)==0)
printf("0");
else
printf("1");
printf("\n");
}
G. 怎样用c语言表示 翻转的数 比如把81 翻转为18
用c语言表示翻转的数可以参考下面的代码:
#include <stdio.h>
int main()
{int C,D,S;
scanf("%d",&C);
D=(C%10)*10+C/10;
S=C+D;
printf("S=%d",S);
}
(7)c语言打印翻转扩展阅读:
scanf()是C语言中的一个输入函数。
与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。
(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include <stdio.h>。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
H. C语言输出一行将所有的单词的位置翻转过来,最后出现的单词最先输出,每
#include<stdio.h>
#include<string.h>
intmain()
{
chara[100];
intk,i,j,p;
gets(a);
k=strlen(a);
j=k;
for(i=k-1;i>=0;i--)
{
if(a[i]=='')
{
p=i;//先保存当前要输出的位置
while(a[i-1]=='')i--;//跳过多余的空格
for(;p<j;p++)
{
printf("%c",a[p+1]);//输出单词中的各字母
}
j=i;//记录下当前结束位置
}
}
for(i=0;i<j;i++)
{
printf("%c",a[i]);
}
printf(" ");//换行
return0;
}
I. c语言打印翻转等腰梯形
dty@ubuntu:~$catt.c
#include<stdio.h>
intmain()
{
inta,b,c,n;
scanf("%d",&n);
for(a=n-1;a>=0;a--)
{
for(b=0;b<n-a-1;++b)
printf("