開關語句、循環語句、goto

復習:

1、數據類型:signed char         1   %hhd    -128~127signed short        2   %hd     -32768~32767signed int          4   %d      正負20億signed long         4   %ldsigned long long    8   %lld    9天開頭的19位數unsigned char       1   %hhu    0~255unsigned short      2   %hu     0~65535unsigned int        4   %u      0~40億unsigned long       4   %lu     unsigned long long  8   %llu    1開頭的20位數float               4   %fdouble              8   %lflong double         12  %LF
2、變量取名規則1、由數字 字母 下劃線組成2、不能以數字開頭3、不能與關鍵字重名4、見名知義
3、變量的輸入輸出printf 提示信息+占位符+變量名scanf 占位符+變量地址%nd %0nd %-nd %n.mf
3、運算符/ % 除數不能0,否則會產生浮點數例外,核心已轉儲錯誤== 變量盡量放在右邊++/-- 一行代碼中不要過多使用&& || 具有短路特性A?B:C 不能出現流程控制語句
4、類型轉換自動類型轉換:不同類型的數據會先轉換成相同類型的數據才能進行運算。轉換規則(以不丟失數據為基礎,適當犧牲一些空間):1、字節少向字節多轉2、相同字節數有符向無符轉3、整型向浮點型轉強制類型轉換:(目標類型)數據 , 可能會造成數據丟失,慎重使用。

一、開關語句

switch

switch(n)//運算結果必須是整型
{case val: // val必須是整常量 ,如果val等于n,則打開執行開關... break; // 關閉執行開關注意:如果每個cast后都有break,就形成了分支結構。default:// 如果所有的case都沒有匹配成功則打開執行開關
}
case a ... b: 判斷一個范圍,此為GNU編譯器獨有的語法,不建議使用。

練習1:輸入一個月份,判斷季節。
123 春天
456 夏天
789 秋天
10 11 12 冬天
other 輸入的月份有誤

#include <stdio.h>int main()
{unsigned int month = 0;printf("請輸入一個月份:");scanf("%u",&month);switch(month){case 1 ... 3: printf("春天"); break;case 4 ... 6: printf("夏天"); break;case 7 ... 9: printf("秋天"); break;case 10 ... 12: printf("冬天"); break;default: printf("輸入的月份有誤!\n"); break;}
}

練習2:輸入一個月份,判斷該月有多少天,忽略閏年問題。

#include <stdio.h>
#include <stdint.h>int main(int argc,const char* argv[])
{uint8_t month = 0;printf("請輸入一個月份:");scanf("%hhu",&month);if(month < 1 || month > 12){printf("輸入的月份有誤!\n");return 0;}switch(month){case 2: printf("28天\n"); break;case 4: case 6:case 9:case 11: printf("30天\n"); break;default: printf("31天\n"); break;}
}
for循環語句:
循環就是讓一段代碼反復執行,達到你想要的結果。
for一種比較靈活且危險(與其它循環相比)的一種循環。
一般使用一個變量來引導它的運行,這個變量就叫作循環變量。
for([1];[2];[3])
{[4];
}1、給循環變量賦初值,C99標準才可以定義循環變量。此處定義的循環變量,只能for循環內使用。
2、判斷循環變量的是否到達邊界。
4、被反復執行的代碼,也叫循環體。
3、改變循環變量,防止變成死循環,一般對循環變量自加或自減。大括號問題:1、建議上下對齊2、循環體如果只有一行代碼,大括號可以省略但不利于擴展,一般商業代碼要求大括號不能省略。for循環的多種寫法:
for(;;)
{// 死循環
}int i = 0;
for(;i<10; i++)
{}for(int i=0; i<10;)
{printf("----");i++;
}
while語句:
while(條件) // 當條件為真執行循環體,為假時結束
{// 循環體
}while循環相當于for循環的精簡版本。
for循環負責解決明確知道循環次數的問題。
while負責解決只知道結束條件而不確定循環次數的問題。
do while語句:
do{循環體
}while(條件); 
先執行循環體,再判斷循環條件,該循環至少執行一次。
循環嵌套:
循環語句中包含循環語句。
外層循環執行一次,內存循環執行遍。

練習3:計算出所有的水仙花數。

#include <stdio.h>int main(int argc,const char* argv[])
{for(int i=100; i<1000; i++){int g = i%10;int s = i/10%10;int b = i/100;if(g*g*g+s*s*s+b*b*b == i){printf("%d\n",i);}}
}

練習4:輸入一個正整數,判斷是否是素數。

#include <stdio.h>int main(int argc,const char* argv[])
{int num = 0;printf("請輸入一個整數:");scanf("%d",&num);if(num < 2){printf("輸入的數據有誤!\n");return 0;}int cnt = 0;for(int i=1; i<=num; i++){if(0 == num%i){cnt++;}}if(2 == cnt){printf("是素數\n");}else{printf("不是素數\n");}
}
#include <stdio.h>int main(int argc,const char* argv[])
{int num = 0;printf("請輸入一個整數:");scanf("%d",&num);if(num < 2){printf("輸入的數據有誤!\n");return 0;}int i = 2;for(; i<num; i++){if(0 == num%i){printf("不是素數\n");return 0;}}printf("是素數!\n");}

練習5:輸入一個整數,分解顯示。
-1234
-1 2 3 4

#include <stdio.h>
#include <math.h>
#include <stdlib.h>int main(int argc,const char* argv[])
{int num = 0;printf("請輸入一個整數:");scanf("%d",&num);if(num < 0 ){printf("-");num = abs(num);}int copy = num , cnt = 0;while(copy){copy /= 10;cnt++;}for(int i=cnt; i>0; i--){printf("%.0lf ",num/pow(10,i-1));num = num % (int)pow(10,i-1);}
}

練習6:輸入一個正整數,判斷是否是回文數。
1234
4321

#include <stdio.h>int main(int argc,const char* argv[])
{int num = 0 , new = 0;printf("請輸入一個正整數:");scanf("%d",&num);if(num < 0){printf("輸入的數據有誤\n");return 0;}int copy = num;while(copy){new = (new*10)+(copy%10);copy /= 10;}printf("%d %d\n",num,new);if(num == new){printf("是回文數\n");}else{printf("不是回文數\n");}
}
跳轉語句:
goto 可以在函數內任意跳轉。
它可能會破壞已經設計好的分支或循環語句,因此絕大多數公司禁止使用。
但它在驅動編程時特別適合處理異常。標簽: // 位置
goto 標簽;

練習7:不使用循環計算前N項的斐波那切數列。
1 1 2 3 5 8 13 21 …

#include <stdio.h>int main(int argc,const char* argv[])
{// 1 0 1 1 2 3int n = 0;printf("輸入n的值:");scanf("%d",&n);int f1 = 1 , f2 = 0 , t = 0;loop:t = f1 + f2;f1 = f2;f2 = t;printf("%d ",t);if(--n) goto loop;
}

在這里插入圖片描述


該系列持續更新
希望喜歡的小伙伴可以一鍵三連~~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449131.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449131.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449131.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

成功男士的健康心理特征

自信&#xff1a;他們普遍都有很強的自信心&#xff0c;有時有咄咄逼人的感覺。 急迫感&#xff1a;他們通常很急地想見到事物的成果&#xff0c;因此會給別人帶來許多的壓力。他們信仰“時間就是金錢”&#xff0c;不喜歡也不會把寶貴的時間浪費在瑣碎的無聊事情上。 腳踏實…

DBlink的創建與刪除

創建方式一&#xff1a; create [public] database link link名稱 connect to 對方數據庫用戶identified by 對方數據庫用戶密碼 using 對方數據庫ip:端口/服務名; 創建方式二&#xff1a; create [public] database link link名稱 connect to 對方數據庫用戶identified by 對…

kong 啟動報錯 could not retrieve server_version: timeout

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 報錯&#xff1a; nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:169: [postgres error] could not ret…

2-STM32物聯網開發WIFI(ESP8266)+GPRS(Air202)系統方案安全篇(監聽Wi-Fi和APP的數據)

1-STM32物聯網開發WIFI(ESP8266)GPRS(Air202)系統方案安全篇(來看一下怎么樣監聽網絡數據,監聽電腦上位機軟件的數據) 因為那個軟件只能監聽咱自己電腦上的數據,所以咱就用電腦開個熱點,然后讓Wi-Fi和APP連接咱電腦的熱點,這樣就能監聽數據了 電腦開個熱點 手機APP連接這個熱點…

數組越界的后果

數組&#xff1a; 什么是數組&#xff1a;變量的組合&#xff0c;是一種批量定義變量的方式。 定義&#xff1a;類型 數組名[數量];int arr[5]; 使用&#xff1a;數組名[下標];下標&#xff1a;從零開始&#xff0c;范圍&#xff1a;0~數量-1。 遍歷&#xff1a;與for循環配合…

職場心理:12個建議或許能改變你的一生(圖)

心理引言&#xff1a;如何更好實現自我的職業目標&#xff1f;聽起來很簡單&#xff0c;回答也很簡短&#xff0c;就是你必須清楚你最終想要實現什么&#xff1f;只要你這樣做&#xff0c;你就已經開始從看的見和看不見的兩條路徑來實現你的目標。職場是一種特殊的環境&#xf…

python—包

1.模塊 可以增加代碼的重復利用的方式 避免命名沖突 如何定義模塊 模塊就是一個普通文件&#xff0c;所以任何代碼可以直接書寫規范 函數&#xff08;單一的功能&#xff09;類&#xff08;相似功能的組合&#xff0c;或者類似業務模塊&#xff09;測試代碼 如何使用模塊 模塊…

Docker Installation : Docker 中安裝并啟動 Kong

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Details about how to use Kong in Docker can be found on the DockerHub repository hosting the image: kong. We also have a Docke…

tomcat是否有必要配置環境變量(摘)

之前發表了一篇關于如何安裝和配置Tomcat的文章&#xff0c;而最近在開發項目的時候總是報錯。后來被公司的大神問了一句&#xff1a;是誰告訴你Tomcat是需要配置環境變量的&#xff1f; 作為新手的我瞬間整個人都不好了&#xff01;于是偷偷百度了一下&#xff0c;終于找到了關…

走迷宮+推箱子

兩個小游戲的大致邏輯 走迷宮: 1、定義二維字符數組作為迷宮 2、定義變量記錄老鼠的位置 3、獲取游戲開始時間 3、進入循環 1、清理屏幕&#xff0c;使用system調用系統命令。 2、顯示迷宮(遍歷二維字符數組) 3、檢查是否到達出口 獲取游戲結束時間&#xff0c;計算出走出迷宮用…

Facebook開源ptr:在Python環境中并行運行單元測試

Facebook開源了一個名為Python Test Runner&#xff08;ptr&#xff09;的新項目&#xff0c;允許開發人員運行Python單元測試套件。ptr和現有測試運行器之間的主要區別在于ptr通過爬取存儲庫查找一定的Python項目&#xff0c;這些項目帶有的單元測試在安裝文件中已經定義過。 …

小竅門解決大問題(組圖)

1.洗頭時&#xff0c;在水中放少許鹽&#xff0c;也可以預防脫發。 2.用醋洗頭&#xff0c;可以令頭發飄順&#xff0c;容易打理而且兼有去頭皮屑的功效。特別適合燙染后的頭發。 3.刷牙時在牙膏上加上一點小蘇打&#xff0c;刷三次后牙齒潔白如玉&#xff0c;牙銹自然脫落…

解決報錯: Connecting to Kong on http ... Could not reach Kong on http://xxx.xxx.xxx.xxx:8001

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. Docker 中安裝并啟動好網關 kong 后&#xff0c;想要安裝 kong 的圖形化界面 kong-dashboard &#xff0c;運行命令&#xff1a; do…

生成迷宮/C++

小時候&#xff0c;都喜歡玩迷宮&#xff0c;現在的電腦上還可以玩3D類迷宮。 那么每次開始游戲時&#xff0c;迷宮里密密麻麻的道路是怎么生成的呢&#xff1f; 在代碼里面&#xff0c;我們把它們想象成一堆像素小格子&#xff0c;當兩個格子連在一起&#xff0c;就像一堵墻&a…

Spring boot 配置tomcat后 控制臺不打印SQL日志

在pom.xml中配置tomcat啟動處加上&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</…

人生有五不:不等、不管、不看、不做、不給

一、我不等 朋友什么都等&#xff1a;等退休、等一千萬存款、等孩子長大、等房貸繳清……最后等到了告別式。 他有感而發告訴我們這群探病友人&#xff0c;人都會走&#xff0c;可是他走得有些遺憾&#xff0c;有點不甘&#xff0c;非常后悔&#xff0c;除了工作之外&#xff0…

selenium操作瀏覽器的前進和后退

前進關鍵字&#xff1a;driver.forward() 后退關鍵字&#xff1a;driver.back() 測試對象&#xff1a;1、https://www.baidu.com/ 2、https://www.sogou.com/ 實例代碼&#xff1a; 1 # 導入測試所需的庫或者模塊2 from selenium import webdriver3 import unittest4 import ti…

關于對象不能直接訪問私有成員的誤區(轉)

先貼代碼&#xff1a; #includeusing namespace std; class CPoint { public:CPoint(int xx, int yy){x xx;y yy;}CPoint(const CPoint &p){x p.x;y p.y;} private:int x, y; };如果你在想為什么拷貝構造函數的參數可以直接去訪問它自己的私有成員的話&#xff0c;你就…

阿里云 ECS服務器 開放 8080 端口 -- 圖解

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 由于 kong-dashboard 的端口是映射到 8080 的&#xff0c;服務已啟動成功卻一直訪問不了&#xff0c;最后才想起端口沒有開放 ... 1. 登…

.NET高級代碼審計(第三課)Fastjson反序列化漏洞

0X00 前言 Java中的Fastjson曾經爆出了多個反序列化漏洞和Bypass版本&#xff0c;而在.Net領域也有一個Fastjson的庫&#xff0c;作者官宣這是一個讀寫Json效率最高的的.Net 組件&#xff0c;使用內置方法JSON.ToJSON可以快速序列化.Net對象。讓你輕松實現.Net中所有類型(對象,…