您的位置:

c语言怎么翻转,c字符串翻转

本文目录一览:

c语言如何实现字符串按位翻转

字符串按位翻转可以通过对每个字符按位翻转实现,首先通过指针偏移或数组下标依次取出字符,然后对单个字符做按位非操作,即~

用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(startend){

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;ilen_str;i++)

push(str[i],s);

printf("The disorder is:");

for(i=0;ilen_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语言 图形翻转``

#includestdio.h

main()

{

int a[100][100],i,j,n,m,t,s,k;

scanf("%d %d %d",m,n,t);//M为行 N为列 T为翻转的方式

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

{ for(j=0;jn;j++)

scanf("%d",a[i][j]);

}

if(t==1)

{

for(s=0;si/2;s++)

for(j=0;jn;j++)

{

k=a[i-s-1][j];

a[i-s-1][j]=a[s][j];

a[s][j]=k;

}

}

if(t==-1)

{for(s=0;sj/2;s++)

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

{

k=a[i][j-s-1];

a[i][j-s-1]=a[i][s];

a[i][s]=k;

}

}

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

{ for(j=0;jn;j++)

printf(" %d",a[i][j]);

printf("\n");

}

}

C语言的矩阵翻转

#include stdio.h

int main() {

int M,N,T;

scanf("%d %d %d",M,N,T);  

int mat[M][N];

printf("请输入原始矩阵:\n");

for(int i=0; iM; i++) {

for(int j=0; jN; j++) {

scanf("%d",mat[i][j]);

}

}

printf("原矩阵为:\n");

for(int i=0; iM; i++) {

for(int j=0; jN; j++) {

printf("%d ",mat[i][j]);

}

printf("\n");

}

int temp = 0;

if(T==0) {

printf("左右翻转后:\n");

for(int i=0; iM; i++) {

for(int j=0; jN/2; j++) {

temp = mat[i][j];

mat[i][j] = mat[i][N-j-1];

mat[i][N-j-1] = temp;

}

}

for(int i=0; iM; i++) {

for(int j=0; jN; j++) {

printf("%d ",mat[i][j]);

}

printf("\n");

}

}

if(T==1) {

printf("上下翻转后:\n");

for(int i=0; iM/2; i++) {

for(int j=0; jN; j++) {

temp = mat[i][j];

mat[i][j] = mat[N-i-1][j];

mat[N-i-1][j] = temp;

}

}

for(int i=0; iM; i++) {

for(int j=0; jN; j++) {

printf("%d ",mat[i][j]);

}

printf("\n");

}

}

return 0;

}

怎样用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);

}

扩展资料:

scanf()是C语言中的一个输入函数。

与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include stdio.h。

(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include stdio.h。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

参考资料来源:百度百科-scanf (计算机语言函数)