最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C語(yǔ)言控制語(yǔ)句

2022-12-25 05:29 作者:虛云幻仙  | 我要投稿

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#include <ctype.h> //提供isupper() islower() isspace()等函數(shù)


void char_count(void); // 對(duì)輸入的字符計(jì)數(shù)

void show_ascii(void); // 顯示輸入字符的ASCII碼

void show_dual(void); // 統(tǒng)計(jì)輸入隊(duì)列中的偶數(shù)

void func2(void); // 對(duì)部分字符進(jìn)行替換

void ei_count(void);

void tax1(void);

void char_count(void) {

char ch;

int s_count, n_count, o_count; // s_count記錄空格的數(shù)量,n_count記錄換行的數(shù)量,o_count記錄其他字符的數(shù)量

s_count = n_count = o_count = 0; // 賦值運(yùn)算從右向左執(zhí)行,所以三個(gè)變量都賦值0

printf("輸入任何內(nèi)容,以#作為結(jié)束\n");

while ((ch = getchar()) != '#') // 表達(dá)式ch=getchar()的值是ch被賦予的值

{

????if (ch == ' ') // if語(yǔ)句,()內(nèi)表達(dá)式為非0/true則執(zhí)行{}內(nèi)的語(yǔ)句,{}只有一句時(shí)可省略括號(hào)

????{

????????s_count++;

????}

????else if (ch == '\n') // else if 在if語(yǔ)句 ()括號(hào)為0/false時(shí)執(zhí)行判定

????{

????????n_count++;

????}

????else? // if和else if都為0/false時(shí)執(zhí)行,即ch不是空格也不是換行符

????{

????????o_count++;

????}

}

printf("s_count=%d\tn_count=%d\to_count=%d\n", s_count, n_count, o_count);

}

void show_ascii(void) {

char ch;

printf("輸入任何內(nèi)容,以#作為結(jié)束\n");

for (int i = 1; (ch = getchar()) != '#'; i++)

{

????printf("\'%c\':%d\t", ch, ch);

????if (i % 8 == 0) // 每顯示8個(gè)字符換行

????putchar('\n'); // putchar()打印字符,getchar()讀取字符

}

while (getchar() != '\n') // 上一個(gè)循環(huán)讀到#結(jié)束,如果#后面還有除\n以外的字符,通過(guò)getchar()舍棄整行內(nèi)容,跳到新的一行

????continue; // continue跳過(guò)當(dāng)前單次循環(huán)內(nèi)的剩余內(nèi)容進(jìn)行下一次測(cè)試條件,由于continue后并沒(méi)有其他語(yǔ)句,所以和只寫(xiě)分號(hào);的空語(yǔ)句作用相同,但可讀性高

}

void show_dual(void) {

int i,count, dual;

printf("請(qǐng)輸入整數(shù),輸入0結(jié)束\n");

for (count = dual = 0; scanf("%d", &i) == 1; count++)

{

????if (i == 0)break; //break退出當(dāng)前循環(huán)

????if (i % 2 == 1)

????????continue; //continue跳過(guò)塊內(nèi)剩余部分進(jìn)行下一次迭代、循環(huán),即跳過(guò)下面直到for循環(huán)}括回的語(yǔ)句,執(zhí)行count++和scanf()

????dual++;

}

printf("總數(shù)%d\t其中偶數(shù)%d\n", count, dual);

}

void func2(void) {

char ch;

int count = 0;

printf("請(qǐng)輸入內(nèi)容以#結(jié)束\n");

while ((ch = getchar()) != '#')

{

????switch (ch) // switch語(yǔ)句,計(jì)算()內(nèi)表達(dá)式的值和{}內(nèi)的case標(biāo)簽順序比較,如果有值相同的case會(huì)執(zhí)行:后面的語(yǔ)句,如果都不相同會(huì)執(zhí)行default后的語(yǔ)句,如果沒(méi)有default會(huì)結(jié)束switch,switch()括號(hào)內(nèi)的值必須為整數(shù)

????{

????????case '.': // case后面必須是整數(shù)常量或者由整數(shù)常量組成的表達(dá)式

????????????putchar('!');

????????????count++;

????????????break; // 使用break跳出switch,如果不使用會(huì)繼續(xù)向下執(zhí)行語(yǔ)句

????????case '!':

????????????putchar('!');

????????????putchar('!');

????????????count++;

????????????break;

????????default:

????????????putchar(ch); // default是最后一個(gè),所以不需要寫(xiě)break也會(huì)結(jié)束

????}

}

printf("發(fā)生了%d次替換", count);

}

void ei_count(void) {

char prev, ch;

prev = '\0';

int count = 0;

int lc = 0;

int uc = 0;

int sc = 0;

printf("統(tǒng)計(jì)ei出現(xiàn)的次數(shù),請(qǐng)輸入任意內(nèi)容以#或*結(jié)束\n");

while ((ch = getchar()) != '#' || ch != '*') // ||或邏輯運(yùn)算符,兩側(cè)的表達(dá)式均為0時(shí)||運(yùn)算結(jié)果才為0,運(yùn)算從左往右,遇到1停止并返回1,后面的表達(dá)式不執(zhí)行,邏輯運(yùn)算符|| &&為序列點(diǎn),左側(cè)執(zhí)行完后才會(huì)執(zhí)行后面的,所以右側(cè)的ch的值是左側(cè)ch=getchar()執(zhí)行后賦給ch的值

{

????if (ch == 'i' && prev == 'e') // &&與邏輯運(yùn)算符,兩側(cè)的表達(dá)式均為非0時(shí)&&運(yùn)算的結(jié)果才為1,否則為0,運(yùn)算從左往右,遇到0停止并返回0,后面的表達(dá)式不執(zhí)行

????{

????????count++;

????}

????if (isupper(ch)) // isupper()判斷參數(shù)ch是否為大寫(xiě)字母

????????uc++;

????else if (islower(ch)) { // islower()判斷是否為小寫(xiě)字母

????????ch = toupper(ch); // toupper()將小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母

????????lc++;

????}

????else if (isspace(ch)) // isspace()判斷是否為空格\t\n

????????sc++;

????prev = ch;

}

printf("count = %d", count);

}

void tax1(void) {

const int BASE1 = 17850;

const int BASE2 = 23900;

const int BASE3 = 29750;

const int BASE4 = 14875;

const double TAX1 = 0.15;

const double TAX2 = 0.28;

double tax;

printf("稅率計(jì)算,請(qǐng)輸入收入(正整數(shù)):");

for (int i = 0, j = 0; scanf("%d", &i) == 1 && !(i <= 0); ) // !非邏輯運(yùn)算符,優(yōu)先級(jí)僅次于括號(hào),!(i<=0)等價(jià)于i>0

{

????printf("選擇檔位1-4(輸入其他退出):");

????if (scanf("%d", &j) != 1)break;

????switch (j)

????{

????????case 1:

????????????tax = i > BASE1 ? BASE1 * TAX1 + (i - BASE1) * TAX2 : i * TAX1; // 條件運(yùn)算符?: 三元運(yùn)算符, 判斷條件?表達(dá)式2:表達(dá)式3 ,如果判斷條件為非0/true則整個(gè)條件運(yùn)算的值為表達(dá)式2的值,如果判斷條件為0/false則整個(gè)條件運(yùn)算的值為表達(dá)式3的值

????????????break;

????????case 2:

????????????tax = i > BASE2 ? BASE2 * TAX1 + (i - BASE2) * TAX2 : i * TAX1;

????????????break;

????????case 3:

????????????tax = i > BASE3 ? BASE3 * TAX1 + (i - BASE3) * TAX2 : i * TAX1;

????????????break;

????????case 4:

????????????tax = i > BASE4 ? BASE4 * TAX1 + (i - BASE4) * TAX2 : i * TAX1;

????????????break;

????????default:

????????????goto end; // goto語(yǔ)句,跳轉(zhuǎn)到end對(duì)應(yīng)的行,不推薦使用goto

????}

printf("tax = %.2f\n", tax);

printf("輸入收入(正整數(shù))以繼續(xù)計(jì)算:");

}

end: printf("over\n");

}


C語(yǔ)言控制語(yǔ)句的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
潢川县| 三门县| 永昌县| 赤壁市| 靖远县| 太仆寺旗| 如皋市| 石家庄市| 中牟县| 广东省| 绥棱县| 松桃| 德化县| 南宁市| 沁阳市| 福泉市| 苏尼特右旗| 和田县| 福安市| 泰安市| 滨海县| 新巴尔虎左旗| 南安市| 汶川县| 阜平县| 沾益县| 易门县| 隆昌县| 柞水县| 迭部县| 丰宁| 界首市| 井陉县| 平山县| 织金县| 观塘区| 内丘县| 广平县| 安宁市| 汪清县| 宽甸|