(無腦的部落格)c語言將數字倒轉的方法~~
發現遇到很多類似的問題,每次遇到或多或少會頭疼幾分鐘因為需要動腦子。。。
或許是本人太懶了。。太懶了。。太懶了。。
這就是為什麼喜歡套公式而懶得推導,喜歡用定理而懶的證明。
或許高數課本上黑體字很重要吧,重要的都不想看別的東西了。
噠噠噠噠噠噠~~冒藍火
不過,還是c語言比較合口味。。。
只有規則,沒有為什麼,沒有為什麼。
一生:“老師,c語言這裡為什麼……”;
老師:“沒有為什麼,記住就行”;
一生:“……”;
好了,既然不需要情感,只需要規則,那有些東西加個指標輸入到腦海中的某個細胞中,用的時候再調出來,那豈不比電腦還有效率???
對於數字翻轉。。。。O(∩_∩)O當然既有笨的方法。
int main()
{
int i,j,k;
printf(“請輸入一個三位數:”);
scanf(“%1d%1d%1d”,&i,&j,&k);
printf(“倒序輸出該三位數:%d%d%d\n”,k,j,i);
return 0;
}
是不是很笨,,,但是省腦細胞啊。。如果知道輸入的肯定為三位數就別跟自己過不去了非要用巧妙的方法。。。。有時候笨方法更省時間。。
好了上面那個只是個玩笑
int main()
{
char shuaiqi[100] ; int i; scanf("%s",&shuaiqi); for (i = 0; i < strlen (shuaiqi);i++) { printf("%c",shuaiqi[strlen (shuaiqi) - i-1]); }
}
對於這串程式碼來說,很明顯是用字串的格式輸入,然後再輸出字串,非常好理解,但是有一個很無奈的問題,如果輸入的最後一位是0的話,它還是會原封不動的打出來,顯得特別傻。
也就是在上次實驗課的時候看著它乾瞪眼了好久好久。。。。。
(當時真是愚蠢)
愚蠢到寫下了這個糾結的程式碼
int main()
{
int i,a,sum[10] = {0};
char ch;
for (i = 0; i <= 9;i++ ){
while ((ch = getchar()) !='\n') { sum[i] += ch - '1' + 1; } } for (i = 0;i <=9;i ++) { printf("%d\n",sum[i]); } }
Dev測試成功但是老師的系統測試超時。。。
心態爆炸。。。接著,就是字串方法迴避不了的那個開頭0的問題。。056 056是個什麼東東???就是56呀,但是計算機不認啊,情商太低了真應該跟我學習學習。
然後還想設個if語句看看能不能把最後一位的零特殊化拿出來。。
但又想到了如果有好多的0怎麼辦啊1000000。
心態爆炸。。。
之後是某位不願意承認自己是大佬的巨佬寫的
int integer[11];
for(int i = 0; i < 10; i++)
{
scanf(“%d”, &integer[i]);
int s = 0;
for(int j = integer[i]; j>=1;)
{
s = s + j % 10;
j = j / 10;
}
integer[i] = s;
}
for(int i = 0; i < 10; i++)
{
printf(“%d”, integer[i]);
if(i != 9)
{
printf(“\n”);
}
}
膜大佬,膜大佬,。巧妙的把數字最前方的0去掉了。。。。(雖然和我最後想的差不多但想的過程比我快了好久。)
不過我覺得大佬的思路很好啊。。但是程式碼串有點多了。尤其是那放眼望去的sssss 乍一看以為是字元組。所以化簡過後的,也是目前我知道的最乾脆的版本:
int opposite(int a)
{
int sum = 0;
while (a)
{
sum = sum*10 + a%10;
a /= 10;
}
return sum;
}
哈!!!!
於是就把最精華的版本背過了。。
希望大家也能在c語言的探索中找到自己的樂趣。
雖然我寫的對於大佬來說實在是荒誕的自娛自樂。
不過我很快樂啊~~~~
青春的意義是什麼? 不就是快樂麼?