C语言程序设计学习日志(一)
程序設計也是我感興趣的一件事情,今天開始寫博客,其中的內容是一些稍微有點意思的練習題目(都是簡單的那種)和一些知識點的理解,更多的是為了整理思路和記錄知識。
題目內容:
逆序的三位數:程序每次讀入一個正三位數,然后輸出逆序的數字。
注意,當輸入的數字含有結尾的0時,輸出不應帶有前導的0。比如輸入700,輸出應該是7。
提示:用%10可以得到個位數,用/100可以得到百位數…。將這樣得到的三個數字合起來:百位*100+十位*10+個位,就得到了結果。
注意:除了題目要求的輸出,不能輸出任何其他內容,比如輸入時的提示,輸出時的說明等等都不能。這道題目要求輸出逆序的數字,程序就只能輸出這個數字,除此之外任何內容都不能輸出。
輸入格式:
每個測試是一個3位的正整數。
如:123
輸出樣例:
321
分析:
用%10可以得到個位數,用/100可以得到百位數,除以10再%10就得到了其十位數,小結:(所以也就兩種情況,直接用除獲得最高位,或者用求余得其最低位,其他位皆是轉換成這兩種情況再對應操作的)。將這樣得到的三個數字合起來:百位*100+十位*10+個位,就得到了結果。
代碼如下:
#include<stdio.h> int main() { int a,bai,shi,ge; scanf("%d",&a); bai=a/100; shi=a/10%10; ge=a%10; a=ge*100+shi*10+bai; printf("%d",a); return 0; }而下面這道題就是在第一道題目上的一個拓展延伸:
題目內容:
你的程序要讀入一個整數,范圍是[-100000,100000]。然后,用漢語拼音將這個整數的每一位輸出出來。
如輸入1234,則輸出:yi er san si
注意,每個字的拼音之間有一個空格,但是最后的字后面沒有空格。當遇到負數時,在輸出的開頭加上“fu”,
如-2341輸出為:fu er san si yi
輸入格式:
一個整數,范圍是[-100000,100000]。
輸出格式:
表示這個整數的每一位數字的漢語拼音,每一位數字的拼音之間以空格分隔,末尾沒有空格。
輸入樣例:
-30
輸出樣例:
fu san ling
分析:先用計數器定位輸入的數是多少位,開始循環:打印出最高位,接著拆掉最高位,同時計數器跟著少一位以此對應拆完之后的新數值,繼續打印新的最高位以及拆掉新的最高位……這樣一直循環操作直到最后一位打印出來。
- 判斷操作結束是根據計數器的值,這就保證了從一而終。
- 默認每一位都打印空格,當計數器對應到最后一位的時候才不打印空格。
代碼如下:
#include<stdio.h> int main() {int x, t,j=1;scanf_s("%d", &x);//輸入變量if (x < 0) {//若為負數,則打印fu ,并且轉換成其絕對值再來處理printf("fu ");x*=-1;}t = x;//t是用來拆分打印while (t > 9) {//定位x的位數t = t / 10;j *= 10;}//定位完畢,開始拆分、打印的循環操作while (j > 0) {//拆最高位,每拆一次就打印一次t = x / j;switch (t) {case 0:printf("ling");break;case 1:printf("yi");break;case 2:printf("er");break;case 3:printf("san");break;case 4:printf("si");break;case 5:printf("wu");break;case 6:printf("liu");break;case 7:printf("qi");break;case 8:printf("ba");break;case 9:printf("jiu");break;}if(j>1)//若不為最后一位數就打印一次空格printf(" ");//拆掉最高位x = x%j;j /= 10;//每拆去一個最高位就縮小10倍對應新的最高位}return 0; }總結
以上是生活随笔為你收集整理的C语言程序设计学习日志(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言适合进行系统程序设计吗,c语言程序
- 下一篇: 对c语言程序设计的心得体会,C语言程序设