




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
程序結構綜合應用【例1】編寫一個轉動數字的程序,將用戶輸入的5位數字向右轉動5次,輸出每次轉動后得到的數字。程序分析:對于5位數字ABCDE,將ABCDE依次向右轉動,轉動一次后的數字是EABCD。比如,對于5位數字54321向右轉動一次后的數字是15432,將15432向右轉動一次后的數字是21543,即54321向右轉動兩次后的數字是21543。參考程序如下:#include<stdio.h>#include<stdlib.h> //程序中用到exit函數,應包含頭文件stdlib.hmain(){unsignedx,save; //x表示用戶錄入的數,save是存儲用戶錄入的數unsignednumber,temp; //number是拆分后的每一位數字,temp是臨時變量inti=1,count=1; //i和count都表示循環變量inta5,a4,a3,a2,a1; //分別存放x從高位到低位的單個數字printf(“輸入一個5位的正整數:\n”);scanf(“%d”,&x);save=x; //將用戶錄入的數x送至save中存儲if(x>99999||x<10000){printf(“輸入的數字不符合要求。\n”);exit(0); //退出程序}while(count<=5) //判斷數字轉動輸出的次數{do{number=x%10; //取x的最低位數字switch(i) //把x每一位數字存放對對應的變量中{case1:a1=number;break;case2:a2=number;break;case3:a3=number;break;case4:a4=number;break;case5:a5=number;break;}x=x/10; //取x數的除最低位以外的數字i++;}while(i<=6); temp=a1; //把最低位數字存入臨時變量a1=a2; //把第四位數字右移一位a2=a3; //把第三位數字右移一位a3=a4; //把第二位數字右移一位a4=a5; //把最高位數字右移一位a5=temp; //把臨時變量中存儲的最低位數字存入最高位x=a5*10000+a4*1000+a3*100+a2*10+a1; //計算右移后的數printf(“%u轉動%d次是:%u\n”,save,count,x);count++;}}運行結果如下:(1)輸入一個不是5位的整數,輸出不符合要求的提示語。(2)輸入一個正常的5位數,能正常轉動數字輸出。【例2】編寫一個記憶力測試的程序,程序隨機顯示長度為6的字符串,延時0.5秒后,擦除字符串,讓用戶憑借記憶力輸入剛才顯示的字符序列,測試輸入字符串是否正確。程序分析:這個程序要實現的任務有:(1)程序隨機顯示長度為6的字符串。(2)延遲5000毫秒后,程序擦除顯示的字符串。(3)程序提示用戶輸入所看到的字符串,如果輸入正確,就給用戶增加一個分值。(4)程序詢問用戶是否繼續測試自己的記憶力。其中第一步要獲得一個隨機字符串,首先要確定隨機數種子,然后才能模擬得到一個隨機數。在C語言里可以使用srand()函數(在stdlib.h庫中),并將當前機器的時間設置為隨機數種子(time函數在time.h庫中):srand(time(NULL));然后調用rand()函數(在stdlib.h庫中)得到一個大于0的隨機數,例如,為了得到A~Z之間的26個隨機字母的ASCII碼值,可以進行如下操作:c1=rand()%26+’A’;其次,在循環結構中,可以讓程序延遲執行下一條語句,為了能實現比較準確的延時,可以在循環語句中使用clock()函數。比如,為了延遲1000毫秒,可以在循環語句之前,首先調用clock()函數返回一個值,將該值存放到一個long型變量time中,然后在while循環語句中調用如下clock()函數就可以達到延時1000毫秒(1秒)的效果,代碼如下:longtime;time=clock();while(clock()-time<=1000){}記憶力測試參考程序如下:#include<stdio.h>#include<time.h> //程序中用到time函數#include<stdlib.h> //程序中用到srand函數和rand函數main(){longnow; //用來存放time()函數的返回值charc1,c2,c3,c4,c5,c6; //程序生成的隨機字符chars1,s2,s3,s4,s5,s6; //用戶錄入的字符intscore=0,i; //score存儲用戶獲得的分數,i是循環變量charok=’y’,temp;srand(time(NULL)); //用當前時間做隨機數種子while(ok==’y’||ok==’Y’){ok=’n’;printf(“\n請記憶以下字符\n”);c1=rand()%26+’A’; //得到1個A~Z之間的隨機字符c2=rand()%26+’A’;c3=rand()%26+’A’;c4=rand()%26+’A’;c5=rand()%26+’A’;c6=rand()%26+’A’;printf(“%c%c%c%c%c%c”,c1,c2,c3,c4,c5,c6);now=clock();for(;clock()-now<=5000;) //延時5000毫秒{}printf(“\r”); //將輸出光標移動到本行開頭(不回行)for(i=1;i<=6;i++)printf(“*”); //輸出6個*,以便擦除曾顯示的字符串printf(“輸入剛才顯示的字符序列(回車確認):\n”);scanf(“%c%c%c%c%c%c”,&s1,&s2,&s3,&s4,&s5,&s6);temp=getchar(); //消耗掉用戶確認輸入時所輸入的回車if(temp!=’\n’){printf(“輸入非法,程序退出!”);exit(0);}if(c1==s1&&c2==s2&&c3==s3&&c4==s4&&c5==s5&&c6==s6){score++; //增加1分printf(“恭喜,記憶力不錯!\n”);}elseprintf(“遺憾,記憶不準確!\n”);printf(“目前得分:%d\n”,score);printf(“繼續測試嗎?輸入y或n(回車確認):”);ok=getchar();getchar();}}運行結果:【例3】編寫一個信息加密的程序。將信息中的字母字符進行加密,通過密匙確定變成其后的第n個字母,非字母字符保持不變。程序分析:在信息傳輸中,為使信息保密,往往按一定規律(也稱為密匙)將其轉換成密碼,接收人再按約定的規律,將其譯回原文。例如,可以按以下規律將信息字符變成密碼,將字母a變成字母f,A變成F,即變成其后的第5個字母,v變成a,w變成b,x變成c,y變成d,z變成e。字母按上述規律轉換,非字母字符保持原狀不變,如“China!”轉變為“Hmnsf!”。加密的密匙可以由用戶確定,然后從鍵盤輸入一行字符,要求轉換成其相應的密碼。程序如下:#include<stdio.h>main(){intn; //存放密匙數charc; //存放信息字符printf("請輸入信息轉換的密匙數:");scanf("%d",&n);c=getchar(); //消耗掉用戶確認輸入時所輸入的回車printf("請輸入要譯成密碼的信息:\n");c=getchar(); //輸入一個字符給字符變量cwhile(c!=’\n’) //檢查c的值是否是換行符{if((c>=’a’&&c<=’z’)||(c>=’A’&&c<=’Z’)) //如果c是字母{c=c+n; //只要是字母,都先加用戶確定的密匙數nif((c>’Z’&&c<=’Z’+n)||c>’z’)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 托班情緒管理輔導教養人員工作職責
- 建筑施工中鋼筋工程質量控制措施
- 志愿服務隊紀律教育心得體會
- 節能減排背景下污染和噪音降低措施
- 佛教環保公益活動創新-洞察及研究
- 物流協同平臺的用戶信任與行為分析研究-洞察及研究
- 2025年哈爾濱工業大學自主招生環保項目自薦信范文
- 五年級下冊語文學困生個別談話輔導計劃
- 部編版語文二年級下冊課程計劃
- 譯林版小學英語四年級上冊課后提升計劃
- 2013免疫吸附治療知情同意書
- GIS安裝施工工藝
- 2023年司法鑒定程序通則
- 2023屆大連市瓦房店市數學四下期末質量檢測試題含解析
- 保安員在崗培訓法律
- 期貨市場行情及技術分析課件
- 安徽寶鎂輕合金有限公司年產30萬噸高性能鎂基輕合金項目環境影響報告書
- 高爾夫各品牌草坪機械性能對比
- 高考英語真題科技說明文閱讀理解精選訓練含答案
- 2016-2022年全國高考英語讀后續寫及概要寫作試題真題及范文
- 2023年中工國際工程股份有限公司招聘筆試題庫及答案解析
評論
0/150
提交評論