12個(gè)C語言必背實(shí)例分享_第1頁
12個(gè)C語言必背實(shí)例分享_第2頁
12個(gè)C語言必背實(shí)例分享_第3頁
12個(gè)C語言必背實(shí)例分享_第4頁
12個(gè)C語言必背實(shí)例分享_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論