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("