




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第12個(gè)C語言必背實(shí)例分享目錄1.十進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)實(shí)例代碼程序分析2.判斷某一年是否為閏年實(shí)例代碼程序分析3.使用*打印平行四邊形實(shí)例代碼程序分析4.在控制臺(tái)打印出著名的楊輝三角實(shí)例代碼程序分析5.實(shí)現(xiàn)投票統(tǒng)計(jì)功能實(shí)例代碼程序分析6.交換數(shù)組中最大數(shù)和最小數(shù)的位置實(shí)例代碼程序分析7.反轉(zhuǎn)字符串實(shí)例代碼程序分析8.使用goto語句從循環(huán)中跳出實(shí)例代碼程序分析9.計(jì)算字符串中單詞的個(gè)數(shù)實(shí)例代碼程序分析10.控制臺(tái)打印系統(tǒng)的日期和時(shí)間實(shí)例代碼程序分析11.將3個(gè)數(shù)由大到小的順序輸出實(shí)例代碼程序分析12.模擬用戶名登陸實(shí)例代碼程序分析
1.十進(jìn)制數(shù)轉(zhuǎn)換二進(jìn)制數(shù)
實(shí)例代碼
//
#include"stdio.h"
intmain(){
intm,n,k;//定義變量
inta[16]={0};
printf("請輸入一個(gè)0~32767之間的數(shù)字:\n");
scanf("%d",
printf("十進(jìn)制數(shù)%d轉(zhuǎn)換為二進(jìn)制數(shù)是:\n",n);
for(inti=0;i++i){//for循環(huán)從0-14,最高位為符號(hào)位,本例始終為0
m=n%2;//取2的余數(shù)
k=n/2;//取被2整除的結(jié)果
n=k;
a[i]=m;//將余數(shù)存入數(shù)組a數(shù)組中
for(inti=15;ii--){//for循環(huán)將數(shù)組中的16個(gè)元素從后往前輸出
printf("%d",a[i]);
if(i%4==0){//每輸出4個(gè)元素,輸出一個(gè)空格
printf("");
}
運(yùn)行結(jié)果:
程序分析
本實(shí)例比較簡單,而且注釋也比較詳細(xì),這里需要注意的是第二個(gè)for循環(huán)是從后往前輸出15~0,因?yàn)榈谝粋€(gè)for循環(huán)對2取余的結(jié)果存入數(shù)組時(shí)是從a[0]開始存儲(chǔ)的。
2.判斷某一年是否為閏年
//
//Createdby沖哥on2025/9/7.
#include"stdio.h"
intmain(){
intyear;//定義整形變量year
printf("請輸入要查詢的年份:\n");
scanf("%d",year);//從鍵盤輸入要查詢的年份
if((year%4==0year%100!=0)||year%400==0){//判斷是否為閏年的條件
printf("%d年這一年是閏年\n",year);
}else{
printf("%d年這一年不是閏年\n",year);
}
運(yùn)行結(jié)果:
今天分享的也是一個(gè)入門級(jí)實(shí)例,從鍵盤輸入一個(gè)表示年份的整數(shù),判斷該年份是否為閏年。該實(shí)例的要點(diǎn)就是判斷閏年的算法:(year%4==0year%100!=0)||year%400==0
3.使用*打印平行四邊形
//
#include"stdio.h"
intmain(){
chararr[5]={'*','*','*','*','*'};
for(inti=0;ii++){//輸出5行
for(intj=1;jj++){
printf("");//輸出空格的數(shù)量隨著行數(shù)的變化而變化
for(intk=0;kk++){
printf("%c",arr[k]);//輸出數(shù)組中的元素
printf("\n");//輸出一行后換行
}
運(yùn)行結(jié)果:
本實(shí)例的要點(diǎn)就是理解三個(gè)for循環(huán)
第一個(gè)for循環(huán)控制整個(gè)圖形的行數(shù),本實(shí)例中的圖形共5行,所以i的范圍為0~4。
第二個(gè)for循環(huán)用來控制空格的數(shù)量。
第三個(gè)for循環(huán)用將數(shù)組a中的元素逐個(gè)輸出。
4.在控制臺(tái)打印出著名的楊輝三角
//
#include"stdio.h"
intmain(){
inta[8][8]={0};//初始化數(shù)組(本實(shí)例打印8行)
for(inti=0;ii++){//for循環(huán)定義每行的第一個(gè)數(shù)和對角線上的數(shù),數(shù)值為1
a[i][i]=1;
a[i][0]=1;
for(intk=2;kk++){
for(intj=1;jj++){//用兩個(gè)for循環(huán)實(shí)現(xiàn)除對角線和每行第一個(gè)元素外其他元素的賦值
a[k][j]=a[k-1][j-1]+a[k-1][j];
for(inti=0;ii++){
for(intj=0;jj++){//兩個(gè)for循環(huán)將數(shù)組a中的所有元素輸出
printf("%d\t",a[i][j]);
printf("\n");
}
首先要分析楊輝三角的特點(diǎn),找出規(guī)律:
處理每行第一個(gè)數(shù)和對角線上的數(shù)都是1意外,其它的數(shù)就是前一行相鄰的兩數(shù)之和。找到這個(gè)規(guī)律,就可以很輕松的用for循環(huán)實(shí)現(xiàn)了。
5.實(shí)現(xiàn)投票統(tǒng)計(jì)功能
//實(shí)現(xiàn)功能:某次選舉,共有3個(gè)候選人,
//輸入?yún)⒓舆x舉的人數(shù)及每個(gè)人選舉的內(nèi)容,輸出3個(gè)候選人最終的得票數(shù)及無效選票數(shù)
#include"stdio.h"
intmain(){
intNO1=0;
intNO2=0;
intNO3=0;
intb=0;
intn,a[50];
printf("請輸入?yún)⒓舆x舉的人數(shù):\n");//最大50
scanf("%d",
printf("請給候選人投票,1或2或3\n");
for(inti=0;ii++){
scanf("%d",a[i]);
for(inti=0;ii++){
if(a[i]==1){
NO1++;
elseif(a[i]==2){
NO2++;
}elseif(a[i]==3){
NO3++;
}else{
b++;
printf("投票結(jié)果如下:\n");
printf("一號(hào)選手:%d票\n二號(hào)選手:%d票\n三號(hào)選手:%d票\n無效票數(shù):%d\n",NO1,NO2,NO3,b);
}
運(yùn)行結(jié)果:
輸入?yún)⒓舆x舉的人數(shù),再輸入每個(gè)人的選舉內(nèi)容并將其存入數(shù)組中。對存入數(shù)組中的元素進(jìn)行判斷,統(tǒng)計(jì)出各個(gè)候選人的票數(shù)和無效的票數(shù)。
6.交換數(shù)組中最大數(shù)和最小數(shù)的位置
//
//實(shí)現(xiàn)功能:交換數(shù)組中最大數(shù)和最小數(shù)的位置
#include"stdio.h"
intmain(){
inta[10];
intmax,min;
intm,n;
printf("請輸入10個(gè)數(shù)字:\n");
for(inti=0;ii++){
scanf("%d",a[i]);
printf("輸入的10個(gè)數(shù)是:\n");
for(inti=0;ii++){
printf("%4d",a[i]);
printf("\n");
max=a[0];
for(inti=0;ii++){
if(a[i]max){
max=a[i];
m=i;
min=a[0];
for(inti=0;ii++){
if(a[i]min){
min=a[i];
n=i;
a[m]=min;
a[n]=max;
printf("交換最大數(shù)和最小數(shù)的位置后:\n");
for(inti=0;ii++){
printf("%4d",a[i]);
//Createdby沖哥on2025/9/13.
//實(shí)現(xiàn)功能:交換數(shù)組中最大數(shù)和最小數(shù)的位置
#include"stdio.h"
intmain(){
inta[10];//定義數(shù)組
intmax,min;//定義最大值和最小值
intm,n;//定義最大值和最小值的位置
printf("請輸入10個(gè)數(shù)字:\n");
for(inti=0;ii++){
scanf("%d",a[i]);
printf("輸入的10個(gè)數(shù)是:\n");
for(inti=0;ii++){
printf("%4d",a[i]);
printf("\n");
max=a[0];
for(inti=0;ii++){
if(a[i]max){
max=a[i];//找最大值
m=i;
min=a[0];
for(inti=0;ii++){
if(a[i]min){
min=a[i];//找最小值
n=i;
a[m]=min;
a[n]=max;
printf("交換最大數(shù)和最小數(shù)的位置后:\n");
for(inti=0;ii++){
printf("%4d",a[i]);
//Createdby沖哥on2025/9/13.
//實(shí)現(xiàn)功能:交換數(shù)組中最大數(shù)和最小數(shù)的位置
#include"stdio.h"
intmain(){
inta[10];//定義數(shù)組
intmax,min;//定義最大值和最小值
intm,n;//定義最大值和最小值的位置
printf("請輸入10個(gè)數(shù)字:\n");
for(inti=0;ii++){
scanf("%d",a[i]);
printf("輸入的10個(gè)數(shù)是:\n");
for(inti=0;ii++){
printf("%4d",a[i]);
printf("\n");
max=a[0];
for(inti=0;ii++){
if(a[i]max){
max=a[i];//找最大值
m=i;
min=a[0];
for(inti=0;ii++){
if(a[i]min){
min=a[i];//找最小值
n=i;
a[m]=min;
a[n]=max;
printf("交換最大數(shù)和最小數(shù)的位置后:\n");
for(inti=0;ii++){
printf("%4d",a[i]);
}
運(yùn)行結(jié)果:
首先找到數(shù)組中的最大值和最小值,記錄它們的位置,然后交換位置,最后將交換后的數(shù)組輸出。
7.反轉(zhuǎn)字符串
//
//實(shí)現(xiàn)功能:輸入一個(gè)字符串,然后將該字符串反向輸出
#include"stdio.h"
#include"string.h"
#defineN50
voidconvert_str(charstr[N]);
voidconvert_str(charstr[N]){
intj;
chartemp;
for(inti=0;istrlen(str)/2;i++){
j=strlen(str)-1;
temp=str[i];
str[i]=str[j-i];
str[j-i]=temp;
printf("反向輸出:%s",str);
intmain(){
charstr[N];
printf("請輸入字符串:\n");
gets_s(str,N);
printf("輸入的字符串為:%s\n",str);
convert_str(str);
}
運(yùn)行結(jié)果:
注意:實(shí)例中有這樣一個(gè)語句j=strlen(str)-1;這里j為什么是j=strlen(str)-1;而不是strlen(str)呢?原因如下:如果數(shù)組s中含有10個(gè)元素,那么它的長度為10,而s的數(shù)組下標(biāo)從0開始那么下標(biāo)的最大值為9,j這里是代表數(shù)組下標(biāo),所以開始時(shí)的最大值應(yīng)是strlen(str)-1也就是9。
8.使用goto語句從循環(huán)中跳出
//
//Createdby沖哥on2025/9/15.
//實(shí)現(xiàn)功能:使用goto語句從循環(huán)中跳出
#include"stdio.h"
#defineEXIT0
voidshow_Menu(){
printf("菜單選項(xiàng):\t");
printf("1:顯示\t");
printf("2:添加\t");
printf("3:查詢\t");
printf("4:刪除\t");
printf("0:退出\n");
intmain(){
intnum;
show_Menu();
for(inti=1;ii++){
printf("第%d此循環(huán)\n",i);
do{
printf("請輸入菜單選項(xiàng):\n");
scanf("%d",num);
if(num==EXIT){
gotoexit;
printf("****************菜單功能部分****************\n");
}while(num
exit:
printf("程序退出!\n");
return0;
}
運(yùn)行結(jié)果:
goto語句后面會(huì)有一個(gè)標(biāo)識(shí)符gotoexit;當(dāng)程序滿足goto條件時(shí),程序就會(huì)直接跳轉(zhuǎn)到標(biāo)識(shí)符位置。
9.計(jì)算字符串中單詞的個(gè)數(shù)
//
//實(shí)現(xiàn)功能:計(jì)算字符串中單詞的個(gè)數(shù)
#include"stdio.h"
#defineLEN100
intmain(){
charstr[LEN];
intindex;
charblank;
intwords=1;
printf("請輸入字符串:\n");
gets_s(str,LEN);
if(str[0]=='\0'){
printf("輸入的字符串為空\n");
}elseif(str[0]==''){
printf("輸入的字符串的第一個(gè)字符是空格\n");
}else{
for(inti=0;str[i]!='\0';++i){
blank=str[i];
if(blank==''){
words++;
printf("輸入的字符串中有%d個(gè)單詞\n",words);
}
運(yùn)行結(jié)果:
用for循環(huán)遍歷字符數(shù)組,然后判斷是不是結(jié)尾\0,如果不是,就判斷是不是空格,是空格的話,單詞數(shù)加1.
10.控制臺(tái)打印系統(tǒng)的日期和時(shí)間
//
//實(shí)現(xiàn)功能:控制臺(tái)打印系統(tǒng)的日期和時(shí)間
#include"stdio.h"
#include"time.h"
intmain(){
structtm*sysTime;//定義結(jié)構(gòu)體,用于存放日期和時(shí)間
time_tsysDay;
time(sysDay);//獲取系統(tǒng)日期
sysTime=localtime(sysDay);//轉(zhuǎn)換為系統(tǒng)日期
printf("系統(tǒng)日期:%d-%d-%d\n",1900+sysTime-tm_year,sysTime-tm_mon+1,sysTime-tm_mday);
printf("系統(tǒng)時(shí)間:%d:%d:%d\n",sysTime-tm_hour,sysTime-tm_min,sysTime-tm_sec);
return0;
}
運(yùn)行結(jié)果:
本實(shí)例主要掌握系統(tǒng)日期和時(shí)間的獲取方法。
11.將3個(gè)數(shù)由大到小的順序輸出
//
//實(shí)現(xiàn)功能:輸入三個(gè)整數(shù),然后按由大到小的順序輸出
#include"stdio.h"
voidswap(int*pa,int*pb){
inttemp;
temp=*pa;
*pa=*pb;
*pb=temp;
voidcompare(int*pa,int*pb,int*pc){
if(*pa*pb){
swap(pa,pb);
if(*pa*pc){
swap(pa,pc);
if(*pb,*pc){
swap(pb,pc);
intmain(){
inta,b,c,*pa,*pb,*pc;
printf("請輸入三個(gè)數(shù):\n");
scanf("%d%d%d",a,b,
pa=
pb=
pc=
compare(pa,pb,pc);
printf("%d\t%d\t%d\n",a,b,c);
return0;
}
運(yùn)行結(jié)果
還記不記得之前講過的傳址和傳值,這里就用到了傳址。
12.模擬用戶名登陸
//
//實(shí)現(xiàn)功能:模擬用戶名登陸
#include"stdio.h"
#include"string.h"
intmain(){
charuser_name[20]={"zhangsan"};
charpassword[7]={"123456"};
charname[20],pwd[20];
inti=0;
while(i3){
printf("請輸入用戶名:\n");
gets_s(name,20);
printf("請輸入密碼:\n");
gets_s(pwd,7);
if(st
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全套合同范例
- 光伏發(fā)電建設(shè)工程合同范例
- 買房合作合同范例
- 儀器檢測維修合同范例
- 電氣工程師資格證書考試策略試題及答案
- 保險(xiǎn)維修合同范例
- 東莞進(jìn)廠合同范例
- 保利地產(chǎn)合同范例
- 體育培訓(xùn)聯(lián)營合同范例
- relx經(jīng)銷合同范例
- 求職線上測試題及答案
- 湖南炎德·英才大聯(lián)考長郡中學(xué)2025屆模擬試卷(一)語文+答案
- 2025存量房買賣合同電子版
- 危險(xiǎn)化學(xué)品企業(yè)關(guān)鍵設(shè)施安全風(fēng)險(xiǎn)辨識(shí)管控指導(dǎo)手冊
- 2025年地理高考復(fù)習(xí) 專題05“演變過程類”選擇題答題技巧(原卷版)
- Unit 5 Animal friends Integration(D) 課件 2024-2025學(xué)年譯林版(2024)七年級(jí)英語下冊
- 初中生物呼吸系統(tǒng)的組成 課件-2024-2025學(xué)年冀少版生物七年級(jí)下冊
- 2025水產(chǎn)養(yǎng)殖承包合同范本
- 2025年陜西高中學(xué)業(yè)水平合格性考試物理模擬試卷(含答案詳解)
- SL631水利水電工程單元工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)第4部分:堤防與河道整治工程
- 人工智能引論知到智慧樹章節(jié)測試課后答案2024年秋浙江大學(xué)
評論
0/150
提交評論