知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
Weekly Diary 1(week 8,2020 fall)
發(fā)表時(shí)間:2020-10-18
發(fā)布人:葵宇科技
瀏覽次數(shù):54
Introduction
Freshmen 大一新生
Beginner 入門小白
會(huì)在每周記錄學(xué)到的東西和寫的代碼
這周主要寫基本的C語(yǔ)句語(yǔ)法和幾道題,外加一些非常amazing的事情和困惑
那我們開(kāi)始吧!
Basic grammar of C language
if,else
if (條件)
{
(寫代碼)
}
else
{
(寫代碼)
}
初學(xué)判斷、循環(huán)的時(shí)候,括號(hào),大括號(hào),分號(hào)的使用很難記,所以要格外注意一下
上例子:
#include<stdio.h>
int main() {
int age, English_score, IQ;
printf("請(qǐng)輸入你的年齡:\n");
scanf_s("%d", &age);
printf("Please input your English score and your IQ:\n");
scanf_s("%d %d", &English_score, &IQ);
if (age > 0 && English_score >= 0 && IQ >= 0) {
if (age >= 18 && (English_score >= 130 || IQ >= 100))
//if ((age >= 18) && (English_score>=130||IQ>=100))
//age >= 18加括號(hào)可以增加程序可讀性
printf("YES!\n");
else{
printf("NO!\n");
}
//簡(jiǎn)單的if, else可不加大括號(hào),只能執(zhí)行一行
}
else
printf("Error!\n");
return 0;
}
else if
使用else if正確的語(yǔ)序應(yīng)該是:
if ( 條件1 ) { ... ..... } else if ( 條件2 ) { ... ... } else if ( 條件3 ) { ... ... } else{ ... ... }
C語(yǔ)言是從上到下依次執(zhí)行的,所以最后的else在上面條件都不為真時(shí)才執(zhí)行
下面直接上代碼:
#include<stdio.h>
int main() {
int age;
printf("Please input your age:\n");
scanf_s("%d",&age);
if (age >= 70) {
printf("可以退休了\n");
}
else if (age >= 40)
printf("中年人你好\n");
else if (age >= 18)
printf("成年了,可以注冊(cè)游戲賬號(hào)!\n");
else if (age <= 0)
printf("你不對(duì)勁!\n");
else
printf("未成年,快回家寫作業(yè)!\n");
return 0;
}
switch
注意:
break要加上(據(jù)說(shuō)他的作用是跳出switch語(yǔ)句),不考慮嵌套,一個(gè)switch中不允許有兩個(gè)case后面條件一樣
case后面是冒號(hào)不是分號(hào)具體語(yǔ)法如下
switch(...){ //這里有大括號(hào) case 數(shù)字或字符_1 : .........; break; case 數(shù)字或字符_2 : .........; break; default : break; }
因?yàn)槠綍r(shí)用字符比較少,所以這里舉了一個(gè)字符的例子
#include <stdio.h>
int main(){
/* 局部變量定義 */
char grade = getchar();
switch (grade)
{
case 'A':
printf("大佬!\n");
printf("大佬,救救孩子吧\n");
break;
case 'B':
case 'C':
printf("JUST SO SO\n");
break;
case 'D':
printf("您通過(guò)了\n");
break;
case 'F':
printf("I LOVE JLU!\n");
break;
default:
printf("無(wú)效的成績(jī)\n");
break;
}
printf("您的成績(jī)是 %c\n", grade);
return 0;
}
while, do…while, for
所謂的先判斷條件循環(huán)和后判斷條件循環(huán),高中做那種帶方框的選擇題就很容易錯(cuò) 😦 所以我本人是非常不喜歡這個(gè)的。
在這里,for語(yǔ)句的執(zhí)行流程是我認(rèn)為比較重要的。同時(shí)還有continue,break,下周介紹把 hhh
三元運(yùn)算符(用法簡(jiǎn)單 不多說(shuō)了)
//輸入年和月份,輸出這個(gè)月有多少天
#include<stdio.h>
int main() {
int year, month;
scanf_s("%d%d",&year,&month);
int day[12] = { 31,0,31,30,31,30,31,31,30,31,30,31 };
day[1] = (year % 400 == 0 || year % 400 != 0 && year % 4 == 0) ? 29 : 28;
printf("%d",day[month-1]);
return 0;
}
>>這里意外發(fā)現(xiàn),其實(shí)||的優(yōu)先級(jí)比&&低,可以不用加括號(hào),但加上還是比較靠譜^.^
Visual Studio 2019 hot key
Ctrl+A Select all
Ctrl+C Without cursor selection, VS will copy the code of this line
Ctrl+K+F Correct format
Alt+↑ or Alt+↑ The selected line moves up (down)
Ctrl+S Save(It’s best to form a good habit of save.)
Amazing experience & Puzzling problems
1.#include<math.h>中的sqrt與pow數(shù)據(jù)類型
/*1*/int a = sqrt(10);
/*2*/printf("%lf",(double)a);
/*3*/printf("%d",sqrt(9));
/*4*/printf("%lf",sqrt(10));
/*5*/printf("%d",pow(2,8));
前兩行用了強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換
對(duì)比3,4行,第四行可以輸出正確值但是第三行不對(duì)
于是我又嘗試pow,發(fā)現(xiàn)同理
我猜想計(jì)算機(jī)內(nèi)部計(jì)算應(yīng)該是浮點(diǎn)類型的(瞎猜hah)
2.#define
大家第一次見(jiàn)到define應(yīng)該都是#define WIETH 30這種形式吧
我發(fā)現(xiàn)define的其他玩法
#include<stdio.h>
#define NUM 3+4
int main() {
int a = NUM * NUM;
printf("%d", a);
return 0;
}
結(jié)果是19不是49
#include<stdio.h>
#define NUM 'f'
int main() {
printf("%c", NUM);
return 0;
}
用define輸出字符
3.輸入輸出字符串?
char s[10] = { 'I','2',' ','\n','b','\t','y','.','a'};
printf("%s",s);
>>數(shù)組長(zhǎng)度是10個(gè),只能輸出9個(gè),最后一個(gè)是\0
>>char s[] = { 'I','2','\n','\\','b','\t','y','.','a','\0'};
>>像這樣[]內(nèi)不寫數(shù)字的,最后要加\0
4.(數(shù)據(jù)類型)5除以2等于幾?
#include <stdio.h>
int main() {
printf("%f\n", 5 / 2); //0.000000(綠色波浪線)
printf("%d\n", 5 / 2); //2
printf("%d\n", (float)5 / 2); //0(綠色波浪線)
printf("%f\n", (float)5 / 2); //2.500000
printf("%f\n", 5.0 / 2); //2.500000
printf("%f\n", 5 / 2.0); //2.500000
printf("%d\n", 5.0 / 2); //0(綠色波浪線)
return 0;
}
5.這是學(xué)校書里的一道題,有關(guān)getchar的用法不懂
#include <stdio.h>
int main() {
char win;
int mark;
printf("Please input your mark:\n");
scanf_s("%d", &mark);
printf("Did you win the game?(input 'Y' or 'N')");
getchar();
win = getchar();
if (win == 'y' || win == 'Y') {
if (mark >= 95)
printf("Your final score is 100 :-).");
else
printf("Your final score is %d .", mark + 5);
}
else
printf("Your final score is %d .", mark);
return 0;
}
最開(kāi)始沒(méi)有寫第八行的getchar(),程序是執(zhí)行不了的。經(jīng)過(guò)我簡(jiǎn)單研究,這應(yīng)該和緩沖區(qū)有關(guān),等我研究明白后再來(lái)解釋吧 😃
大周日的還要去學(xué)高數(shù) [orz] ,這周就到這里叭,下周再見(jiàn)~~
>>Author: Timax
相關(guān)案例查看更多
相關(guān)閱讀
- 微信分銷
- 網(wǎng)站建設(shè)公司哪家好
- 網(wǎng)絡(luò)營(yíng)銷
- 云南小程序被騙蔣軍
- 小程序開(kāi)發(fā)課程
- 汽車回收管理系統(tǒng)
- 汽車報(bào)廢回收管理系統(tǒng)
- 開(kāi)發(fā)框架
- 小程序開(kāi)發(fā)
- 云南做百度小程序的公司
- 云南小程序開(kāi)發(fā)首選品牌
- 微信分銷系統(tǒng)
- 手機(jī)網(wǎng)站建設(shè)
- 云南小程序被騙
- 昆明網(wǎng)站建設(shè)公司
- 重慶網(wǎng)站建設(shè)公司
- 網(wǎng)站建設(shè)方法
- 汽車報(bào)廢拆解管理系統(tǒng)
- 網(wǎng)站建設(shè)列表網(wǎng)
- 報(bào)廢車拆解回收管理系統(tǒng)
- 昆明軟件定制
- 云南建設(shè)廳網(wǎng)站
- 云南網(wǎng)站建設(shè)首頁(yè)
- 全國(guó)前十名小程序開(kāi)發(fā)公司
- 網(wǎng)站建設(shè)專業(yè)品牌
- 云南軟件公司
- 網(wǎng)站建設(shè)制作
- 昆明做網(wǎng)站
- 正規(guī)網(wǎng)站建設(shè)公司
- 云南網(wǎng)站開(kāi)發(fā)哪家好