C++逆序演算法有感
數字的逆序演算法
數字的逆序比較簡單,直接利用去余去除最后一位,優先輸出;并且通過整除保證下一次去余的正確性,
代碼如下:
#include <stdio.h>
int main()
{
int x;
int d;
scanf("%d",&x);
while(x!=0)
{
d=x%10;
x=x/10;
printf("%d",d);
}
return 0;
}
字符的逆序
字符的逆序,采用遞回演算法比較好,配合getchar()和 putchar()可以進行遞回輸出
/*
利用遞回函式呼叫方式,將所輸入的5個字符,以相反順序列印出來
*/
#include <stdio.h>
void reverse(int i)
{
char next;
if(i<=1)
{
next=getchar();
printf("相反順序輸出結果\40:\40");
putchar(next);
}
else
{
next=getchar();
reverse(i-1);
putchar(next);
}
}
int main()
{
int i=5;
printf("請輸入5個字符");
reverse(i);
return 0;
}
- 以上這種遞回的用法適用于知道具體的字符個數,否則用遞回比較麻煩,
- 具體原因是由于getchar()和putchar()需要提前知道字符的個數,
字符的逆序2
- 以下是一種比較簡單的思路
1. 利用回圈計算出字符的個數
2. 再通過陣列和替換變數對陣列重排
#include <stdio.h>
void reserve(char *s)
{
int len;
char *p=s;
while(*p!=0)
{
len++;
p++;
}
int i;
char c;
for(i=0;i<len/2;i++)
{
c=s[i];
s[i]=s[len-1-i];
s[len-1-i]=c;
}
}
int main()
{
char s[1000];
scanf("%s",&s);
printf("'%s'轉化成",s);
reserve(s);
printf("'%s'",s);
return 0;
}
第一次發隨筆,希望記錄自己的學習程序,如果大家有更多好的想法,歡迎多多討論,小白在此謝過,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/1853.html
標籤:C
上一篇:c語言隨筆1
下一篇:51串口除錯
