(二)C語言之變量與算數運算表達式概述

C語言之變量與算數運算表達式概述

  • 一、華氏溫度與攝氏溫度對照
  • 二、代碼概述
  • 三、練習

一、華氏溫度與攝氏溫度對照

#include <stdio.h>/*當華氏溫度為 0,20,40,...300時,打印出華氏溫度與攝氏溫度對照表華氏溫度與攝氏溫度 C=(5/9)(?F-32) 其中C表示攝氏溫度,F表示華氏溫度
*/
main() 
{// 華氏溫度f, 攝氏溫度cint f, c;// 最低溫度,最高溫度,步長int lower, upper, step;lower = 0;upper = 300;step = 20;f = lower;while (f<=upper) {// 如果先計算5/9,小數部分會被舍位,結果永遠是0c = 5 * (f - 32) / 9;printf("%d\t%d\n", f, c);f = f + step;}
}

在這里插入圖片描述

二、代碼概述

上面的程序比較簡單,這里從上到下只做粗略描述,目的是了解程序的構造:

  • 包含在/*與*/之間的字符序列,稱之為多行注釋;
  • 在//后面的字符序列,稱之為單行注釋;
  • 注釋會被編譯器忽略。
  • 在C語言中,所有變量都必須先聲明后使用。聲明通常放在函數起始處,在任何可執行語句之前。
  • 聲明用于說明變量的屬性,它由一個類型名和一個變量表組成,例如
    • int f, c; 其中int為類型名,表示整數;f,c為兩個變量,放到一起就是一個變量表
    • int lower, upper, step; 同上
  • int的取值范圍取決于具體的機器(這與java不同),有16位的,也有32位的,即決定給變量分配多少空間
    • 2字節int, 16位,符號位占1位,正/負數取值2^15=32768
    • 4字節int, 32位,符號位占1位,正/負數取值2^31=2,147,483,648
  • 變量基本類型除了int,還有char, short,long,long long,float,double
  • 賦值語句,就是給變量設置初始值、或新的值
    • lower = 0;
    • upper = 300;
    • step = 20;
    • f = lower;
  • while循環語句,重復執行的邏輯可以放到while循環里面,()里面的是進入循環的條件,如果成立,則進入循環執行循環體,{}里面的代碼就是所謂的循環體;當()中的條件不成立時,循環結束,繼續執行循環結構后面的其他代碼
    while (f<=upper) {}
  • printf是一個通用輸出格式化函數,該函數第一個參數是待打印的字符串,其中的每個%是其他參數(第二個、第三個…)的占位符,運行之后實際的參數值會替換掉%,從而打印出完整的、格式化的字符串
    • printf(“%d\t%d\n”, f, c); 打印華氏\t攝氏溫度\n,\t表示一個制表符,\n表示換行,二者都屬于轉義字符
  • 上面的溫度轉換程序存在兩個問題
    • 輸出的數字不是靠右對齊,不美觀,可以使用printf()進行格式化,使其右對齊

      • printf(" %3d\t%6d\n", f, c); 3個空格位+3個數字位+1個制表符+6個數字位,這樣顯現出來的效果就是右對齊,左邊不足的位數空出
        在這里插入圖片描述
    • 另一個較為嚴重的問題是,我們使用的是整型運算,由于小數位會被舍棄,所以得到的結果不太準確。可以使用浮點數計算,修改程序如下:
      在這里插入圖片描述

      • 變量聲明為float,賦值時,如果給定的值是整型,則會自動轉為浮點型,比如 lower=0;
      • 運算時,如果有一個浮點型和一個整型,則在運算之前,整型會自動轉為浮點型,比如 f-32, 32會自動轉為32.0
      • 可以按照公式進行程序編寫, C=(5/9)(?F-32),把運算表達式中所有的整型數字都改成浮點數
      • 3.0f 表示浮點數至少占3個字符寬,不保留小數
      • 6.1f 表示浮點數至少占6個字符寬,保留一位小數
      • 格式測試
	// %d 按照十進制整型數打印    decimalismprintf("%d|%d|%d\n", 1, 100, 1000);// %6d 按照十進制整型數打印,至少6個字符寬(待打印字符小于6個,左側不足位補空格;大于等于6個,按實際打印)printf("%6d|%6d|%6d|%6d\n", 6, 66666, 666666, 66666666);// %f 按照浮點數打印  float  小數點最多6位,如果實際不足6位,右側不足位補0;如果實際多于6位,則進位printf("%f|%f|%f|%f|%f\n", 1.1, 1000.222, 1.123456, 1.1234567, 1.12345638);// %6f 按照浮點數打印,至少6個字符寬,基本同上printf("%6f|%6f|%6f|%6f|%6f\n", 1.1, 1000.222, 1.123456, 1.1234567, 1.12345638);// %.2f 按照浮點數打印, 小數點后兩位小數,不足右端補0,多出進位printf("%.2f|%.2f|%.2f|%.2f|%.2f\n", 1.1, 1000.222, 1.123456, 1.1234567, 1.12345638);// %6.2f 按照浮點數打印, 至少6個字符寬(包含小數部分、小數點), 小數部分兩位;不足6位左側補空格,多出6位整數部分按實際打印printf("%6.2f|%6.2f|%6.2f|%6.2f|%6.2f\n", 1.1, 1000.222, 1.123456, 1.1234567, 123451.12345638);// %o 按照八進制打印   octonaryprintf("%o\n", 8);// %x 按照十六進制打印 hexadecimalprintf("%x\n", 16);// %c 字符printf("%c\n", 'c');// %s 字符串printf("%s\n", "hello wrold!");// %% 表示%本身printf("%%\n");

三、練習

  1. 修改溫度轉換程序,使之能在轉換表的頂部打印一個標題
#include <stdio.h>
main()
{// 華氏溫度f, 攝氏溫度cfloat f, c;// 最低溫度,最高溫度,步長float   lower, upper, step;lower = 0;upper = 300;step = 20;f = lower;printf("%s\t%s\n", "華氏溫度", "攝氏溫度");while (f <= upper) {c = 5.0 / 9.0 * (f - 32.0);printf("   %3.0f\t%14.1f\n", f, c);f = f + step;}
}
  1. 編寫一個程序,打印攝氏溫度轉換為華氏溫度的轉換表
#include <stdio.h>/*當攝氏溫度為 0,20,40,...300時,打印出攝氏溫度與華氏溫度對照表F=(9.0/5.0)*C+32 其中F表示華氏溫度,C表示攝氏溫度
*/
main()
{// 華氏溫度f, 攝氏溫度cfloat f, c;// 最低溫度,最高溫度,步長float   lower, upper, step;lower = 0;upper = 300;step = 20;c = lower;printf("%s\t%s\n", "攝氏溫度", "華氏溫度");while (c <= upper) {f = (9.0 / 5.0) * c + 32;printf("   %3.0f\t%14.1f\n", c, f);c = c + step;}
}

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

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

相關文章

順序棧和鏈棧

#include<iostream> using namespace std; #define MAXSIZE 100 typedef int SElemType; typedef struct { SElemType* base; SElemType* top; int stacksize; }SqStack;//順序棧 //構造一個空棧 int InitStack(SqStack& s) { s.base new SElemType…

Django之中間件與CSRF_TOKEN

文章目錄 一、什么是中間件二、中間件有什么用三、Django自定義中間件中間件中主要方法及作用創建自定義中間件的步驟&#xff1a;process_request與process_response方法process_view方法process_exceptionprocess_template_response&#xff08;不常用&#xff09; 四、CSRF_…

mysql latin-1報錯解決

conn pymysql.connect(hostmeta_conf[host], usermeta_conf[user], passwordmeta_conf[password], portmeta_conf[port], charsetutf8) 光把表聲明 ENGINEINNODB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_bin ROW_FORMATDYNAMIC 并不能解決這個報錯,需要在創建mysql連接時候…

面試:RabbitMQ相關問題

文章目錄 簡單介紹RabbitMQRabbitMQ架構什么是 RabbitMQ&#xff1f;有什么顯著的特點&#xff1f;RabbitMQ 有那些基本概念&#xff1f;RabbitMQ routing 路由模式消息怎么路由&#xff1f;RabbitMQ publish/subscribe 發布訂閱(共享資源)能夠在地理上分開的不同數據中心使用 …

vue2指令的使用和自定義指令

前言 個人認為vue的指令,對比react來說,給開發者節省了很大的學習成本。比如在react中,你想渲染一個列表,需要用Array.map的方法return<div>,而在vue中,一個簡單的v-for就解決了問題。 在學習成本和入手體驗上,vue的作者確實后來者居上,能讓人更快的使用vue開發。不過也…

無邊界電視點播TVbox殼+源

TBBox可以是個盒子也可以是軟件 視頻播放的困局新的改變TVBox apk更成熟的熊貓寶盒_3.10還有這個沒測試恒星TV 寫在最后 視頻播放的困局 現在電視上幾大平臺看劇集都要充會員&#xff0c;而電腦上網頁端有很多可以看的網頁&#xff0c;只有 隨便一搜就測出來&#xff0c;只是經…

數據安全第一:應對[[MyFile@waifu.club]].wis勒索病毒的實用建議與技巧

引言&#xff1a; 在當今數字化時代&#xff0c;[[MyFilewaifu.club]].wis、[[backupwaifu.club]].wis勒索病毒是一種惡意軟件&#xff0c;其危害用戶數據安全&#xff0c;通過加密文件并勒索贖金來獲取經濟利益。以下是對[[MyFilewaifu.club]].wis、[[backupwaifu.club]].wis…

PyTorch包

進入PyTorch的官網&#xff1a; pytorch GitHub 點擊GitHub&#xff1a; 進入PyTorch的主目錄&#xff1a; 進入Vision reference&#xff1a; detection&#xff1a; 這就是我們在訓練過程中會使用到的文件了&#xff1a;

objdump反匯編文件解析

命令使用 objdump可以對可執行文件進行反匯編 其常用參數為: objdump -d <file(s)>: 將代碼段反匯編&#xff1b;objdump -S <file(s)>: 將代碼段反匯編的同時&#xff0c;將反匯編代碼與源代碼交替顯示&#xff0c;編譯時需要使用-g參數&#xff0c;即需要調試信…

Hadoop技術與應用的習題

第一章測驗 1、下面哪個選項不屬于Google的三駕馬車&#xff1f; A.HDFS B.MapReduce C.BigTable D.GFS 2、下面哪個思想是為了解決PageRank&#xff08;網頁排名&#xff09;的問題&#xff1f; A.GFS B.BigTable C.MapReduce D.YARN 3、GFS 存儲的文件都被分割成固定大小的…

CAN基礎知識

CAN 簡介 CAN 是 Controller Area Network 的縮寫&#xff08;以下稱為 CAN&#xff09;&#xff0c;是 ISO 國際標準化的串行通信 協議。在當前的汽車產業中&#xff0c;出于對安全性、舒適性、方便性、低公害、低成本的要求&#xff0c;各種 各樣的電子控制系統被開發了出來…

簡單的用Python采集股票數據,保存表格后分析歷史數據

前言 字節跳動如果上市&#xff0c;那么鐘老板將成為我國第一個世界首富 趁著現在還沒上市&#xff0c;咱們提前學習一下用Python分析股票歷史數據&#xff0c;抱住粗大腿坐等起飛~ 好了話不多說&#xff0c;我們直接開始正文 準備工作 環境使用 Python 3.10 解釋器Pychar…

如何應用ChatGPT撰寫、修改論文及工作報告,提供寫作能力及優化工作??

如果我想讓gpt從pdf文檔中提取相關關鍵詞的內容&#xff0c;可以怎么做呢&#xff1f;&#xff1f;我們評論區討論 ChatGPT 在論文寫作與編程方面也具備強大的能力。無論是進行代碼生成、錯誤調試還是解決編程難題&#xff0c;ChatGPT都能為您提供實用且高質量的建議和指導&am…

愛上C語言:scanf、gets以及getchar輸入字符串你真的懂了嗎

&#x1f680; 作者&#xff1a;阿輝不一般 &#x1f680; 你說呢&#xff1a;不服輸的你&#xff0c;他們拿什么贏 &#x1f680; 專欄&#xff1a;愛上C語言 &#x1f680;作圖工具&#xff1a;draw.io(免費開源的作圖網站) 如果覺得文章對你有幫助的話&#xff0c;還請點贊…

通過ros系統中websocket中發送sensor_msgs::Image數據給web端顯示

通過ros系統中websocket中發送sensor_msgs::Image數據給web端顯示 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filters/synchronizer.h> #include &…

spring 是如何開啟事務的, 核心原理是什么

文章目錄 spring 是如何開啟事務的核心原理1 基于注解開啟事務2 基于代碼來開啟事務 spring 是如何開啟事務的 核心原理 Spring事務管理的實現有許多細節&#xff0c;如果對整個接口框架有個大體了解會非常有利于我們理解事務&#xff0c;下面通過講解Spring的事務接口來了解…

建行廣東省江門市分行走進農村地區開展反假貨幣宣傳

人民對美好生活的向往&#xff0c;涉及方方面面&#xff0c;小至“錢袋子”安全。建行廣東省江門市分行落實當地監管部門部署&#xff0c;積極扛起維護國家金融安全的重要政治責任&#xff0c;深入農村地區開展反假貨幣宣傳工作&#xff0c;助力構建農村反假貨幣工作長效機制。…

Hyper-V系列:windows11開啟系統自帶安卓虛擬機并安裝apk包

本文記錄了Windows11系統下開啟系統自帶的安卓虛擬機,并通過安裝包安裝自定義應用的過程。開啟系統自帶的安卓虛擬機流程為:開啟Hyper-V、安裝Windows11子系統;安裝apk安裝包的流程為:安裝adb調試工具、開啟子系統的開發者模式、安裝apk應用包。 一. 開啟Hyper-V Hyper-V…

[BJDCTF2020]The mystery of ip1

提示 ssti模板注入head頭x-forwarded-for 每一次做題的最開始流程都大致因該是 信息收集找可以操控的地方 查看hint頁面的源代碼又發現它提示說 ####你知道為什么會知道你的ip嗎 查看flag頁面 從剛才給我的提示以及他這里顯示的我的ip&#xff0c;大概找到了我可操作的可控點 …

【Vue】創建第一個實例

步驟&#xff1a; 1.創建容器 2.引包 3.創建實例 4.添加配置項 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--準備容器 --> <di…