當前位置:首頁 » 編程語言 » c語言if後為數字
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言if後為數字

發布時間: 2023-03-20 03:08:51

c語言用if和switch語句判斷字元是數字還是字母或者是空格,怎麼寫

if(character == ' '){
to do
}
else if((character >= ' a' && character <= 'z') ||(character >= ' A' && character <= 'Z' )){
to do
}

else if(character >= ' 0' && character <= ' 9'){
to do
}

else
to do

② C語言中的一測試語句:if(c>='0'&&c<='9').用於判斷c中的字元是否為數字,怎麼理解

char又叫小整數,字元型可以進行比較大小。比較的就是它們ASCII值的大小。而『0』,『1』,……『9』對應的ASCII值為48,49,……57。
而c>='0' && c<='9'畝答滲就是用迅脊來判斷一個字元的ASCII值是否在48~57之間,這樣就可以判斷它是不是數字了。

c-『0』就等價於c-48,是用c的ASCII值與『0』的ASCII值的差值來當做該字元的值的。

這只是一個簡單的計算,其實其他的字元也可以轉化成自己想要的數字的。比如要想把'A'轉化成1,只需要'A'-'A'+1就行了;要想把'C'轉化成3,只需要'C'-'A'+1就行了。其他的可以舉晌類似的轉化

③ C語言中if括弧里!直接加一個數字什麼意思。比如if(!1),,,,,還有if(3)是什麼意思

if()括弧里是邏輯判斷的表達式,如果括弧裡面的表達式為真則執行後面的語句,否則跳過。這里的if(3),3是整數,在c語言里非零為真,所以這里是可以執行跟隨if語句的意思,if(!1)1的非為0,所以不執行其後的語句。

④ C語言 if 後為什麼只能是整形int

不是說後面只能int整扒褲胡形,而是說if後面只能是布爾型

如if(2) 其實就是if(true)

if(0) 其實等同於 if(false)

一切非零正整春攔數都為純派真,而0就是為假了.

⑤ ifelseif寫輸入一個數,輸出表達式怎麼寫

if else用法詳解,C語言if else用法完全攻略
if else 語句是一種選擇結構,可以讓代碼選擇執行。所謂選擇執行,就是「某些代碼可能執行,也可能不執行,有選擇地執行某些代碼」。
if 的最簡單用法

if最簡單的格式是:
if(表達式) {語句}
功能:如果表達式為真,就執行下面的語句;如果表達式為假,就不執行下面的語句。

下面給大家寫一個程序:
#include <stdio.h>
int main(void)
{
if (3>2)
{
printf("I Love You\n");
}
return 0;
}
運行結果:
I Love You

這個是 if 最簡單的程序。首先,前面講代碼規范化的時候講過,if 與它後面的括弧之間要加一個空格。其次,在前面講過判斷「真」、「假」分為兩種,一種是數值是否為零,另一種是表達式是否成立。所以上面的程序表達式成立,故執行其下的輸出語句。

再將 if 後面的表達式改成數字看看:
# include <stdio.h>
int main(void)
{
if (2)
{
printf("I Love You\n");
}
return 0;
}
運行結果:
I Love You

或這樣寫:
# include <stdio.h>
int main(void)
{
int i;
if (i = 2)
{
printf("I Love You\n");
}
return 0;
}
運行結果:
I Love You

再改成0看看:
# include <stdio.h>
int main(void)
{
if (0)
{
printf("I Love You\n");
}
return 0;
}
編譯並運行,什麼也不輸出。

所以只要 if 後面的表達式成立或非零轎核,就執行其下的語句。表達式為0的時候即假,就不執行其下的語句了。
if 的控制范圍問題

這個問題更重要!先給大家寫一個程序:
# include <stdio.h>
int main(void)
{
if (0)
printf("I Love You\n");
printf("I Love You Too\n");
return 0;
}
運行結果:
I Love You Too

為什麼「I Love You」沒有輸出而「I Love You Too」卻輸出了?因為在C語言中,if 只能控制其後的一個語句。如果要控制多個語句就必須加大括弧{}。所以在上面這個程序中 if 只能控制第一個 printf,而 if 後亂帆明的表達式為 0,所以第一個 printf 不會執行,所以「I Love You」不會輸出。而第二個 printf 不在 if 的控制范圍內,所以 if 語句執行完之後順序往下執行第二個 printf,所以嘩告「I Love You Too」會輸出。

如果希望 if 控制兩個 printf 的話就加上大括弧,像下面這樣:
# include <stdio.h>
int main(void)
{
if (0)
{
printf("I Love You\n");
printf("I Love You Too\n");
}
return 0;
}
這樣兩個printf都不會輸出。

但在講規范化的時候說過,if、else、for、while、do 後面的執行語句不論有多少行,就算只有一行也要加{}。這是規范問題,大家一定要記住。按規范書寫就不容易出錯,看著也舒服。
if…else 的用法

先給大家寫一個程序:
# include <stdio.h>
int main(void)
{
int i, j;
printf("請輸入兩個數:"); //提示輸入
scanf("%d %d", &i, &j); //注意取地址符&
if (i>j)
{
printf("i大於j\n");
}
else
{
printf("i小於j\n");
}
return 0;
}
運行結果:
請輸入兩個數:43 56
i小於j

這里我首先要強調的是:在前面講 scanf 的時候,為了避免讀者產生混亂,有些內容一直未講,專門放到這里來講。

前面強調,scanf 中雙引號內多個「輸入控制符」之間不要加任何「非輸入控制符」。但這里我要說的是:可以加一個符號,就是「空格」。

空格在 scanf 中比較特殊,雖然它是「非輸入控制符」,但它又算不上是真正的需要「原樣輸入」。因為就算不加空格,從鍵盤輸入的時候還是要加空格(或回車)。而且在 scanf 中添加一個空格,輸入的時候輸入 100 個空格也是正確的;在 scanf 中添加 100 個空格,而輸入的時候只輸入一個空格也是正確的。所以說算不上是真正的「原樣輸入」。

那麼 scanf 中%d之間為什麼要加空格呢?原因只有一個——「好看」。如果不加空格的話,看起來就很擠,不好看。但是盡管如此,仍然建議你們什麼都不要加,統一思維和用法。在實際編程中也是不要求加空格的,在這里只是告訴你們可以這么做。

下面來看 if…else,上面那個程序是最簡單的 if…else 用法。這里主要強調三點:

1) 同樣,else 也只能控制到其後的一個語句,如果要控制多個語句的話必須要加大括弧{}。但是這里再強調:if、else、for、while、do 後面的執行語句不論有多少行,就算只有一行也要加{}。

1) 代碼規范化七大原則的第一個原則是「空行」,前面說過:兩個不同的功能塊之間要加空行。言外之意就是「兩個相同的功能塊之間就不需要加空行」。if 和 else 是相同的功能塊,所以它們之間不需要加空行。

3) if 可以沒有 else 單獨使用,這個前面已經應用過了。但如果要用 else,它必須是 if 的一部分。else 絕對不可能脫離if而單獨使用,這一點大家一定要注意。

下面將前面那個程序修改一下:
# include <stdio.h>
int main(void)
{
int i, j;
scanf("%d %d", &i, &j);
if (i>j)
{
printf("i大於j\n");
}
;
else
{
printf("i小於j\n");
}
return 0;
}
這個程序你覺得有沒有錯?編譯一下發現有一個錯誤:
illegal else without matching if
意思是:不合法的 else 沒有匹配的 if。

為什麼會這樣?因為在 if 和 else 之間多加了一個分號。在C語言中,一個分號也是一條語句,叫「空語句」,就是一個什麼都不執行的語句。若在 if 和 else 中間加了一條語句,就將 else 和 if 分開了,就相當於 else 單獨使用了,所以就會報錯「沒有和else匹配的if」。這個程序也告訴我們,分號不能亂加。

這里順便給大家介紹一下「三目運算符」。在前面講優先順序的時候提到過它。在整個C語言中只有一個三目運算符,它的格式是:
表達式1 ? 表達式2 : 表達式3
它就相當於:
if (表達式1)
{
    表達式2;
}
else
{
    表達式3;
}
雖然「三目運算符」的格式看起來代碼比較少,但是我們一般都不用。因為那麼寫看起來很別扭,而且它沒有 if…else 的邏輯清晰,所以我們一般還是使用 if…else。這個了解一下就可以了。
if…else if…else 的用法

還記得前面寫的一元二次方程的那個程序嗎?那個程序就是用 if…else if…else 寫的:
# include <stdio.h>
# include <math.h>
int main(void)
{
//將三個系數保存到計算機中
int a = 1; //「=」不表示相等,而是表示賦值
int b = 2;
int c = 1;
double delta; //delta存放的是b*b - 4*a*c的值
double x1, x2; //分別用於存放一元二次方程的兩個解
delta = b*b - 4*a*c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("該一元二次方程有兩個解,x1 = %f, x2 = %f\n", x1, x2);
}
else if (0 == delta)
{
x1 = (-b) / (2*a);
x2 = x1; //左邊值賦給右邊
printf("該一元二次方程有一個唯一解,x1 = x2 = %f\n", x1);
}
else
{
printf("無解\n");
}
return 0;
}
if…else if…else 比 if…else 復雜一點,但也很好理解。if…else if…else 的意思就是:「如果」第一個成立,就執行第一個;「否則如果」第二個成立就執行第二個;「否則」就執行第三個。這個應該很好理解吧,與我們平時講話時的思維邏輯一樣。
練習——求分數的等級

下面就來寫一個程序,這個程序是目前為止第一個比較有意義的程序。這個程序的功能是「求考試成績的等級」。即,輸入一個考試成績:
如果為 90~100分,就輸出「優秀!」;
如果為 80~89 分,就輸出「良好!」;
如果為 60~79 分,就輸出「及格!」;
如果為 0~59 分,就輸出「補考!繼續努力!」;
如果分數不在這些范圍內就輸出「請重新輸入!」。
#include <stdio.h>
int main(void)
{
float score;
printf("請輸入您的考試成績:");
scanf("%f", &score);
if (score>=90 && score<=100)
{
printf("優秀!\n");
}
else if (score>=80 && score<=89)
{
printf("良好!\n");
}
else if (score>=60 && score<=79)
{
printf("及格!\n");
}
else if (score>=0 && score<=59)
{
printf("補考!繼續努力!\n");
}
else
{
printf("請重新輸入!\n");
}
return 0;
}
score>=90 && score<=100千萬不能寫成90<=score<=100,這樣寫是錯誤的。這是數學中的寫法,在C語言中是不能這么寫的。但我並不是說這樣寫語法有問題,而是說這樣寫無法實現我們所需要的功能。

在C語言中,90<=score<=100這種寫法是允許的,編譯的時候不會報錯。但如果寫成90<=score<=100,那麼不管輸入多少分,輸出都是「優秀!」。大家想想為什麼?

因為按照優先順序,執行的時候肯定是從左到右,所以肯定是先執行 90<=score。但是 90<=score 的運算結果是一個邏輯值,要麼成立,要麼不成立。我們前面講過,邏輯值要麼真、要麼假,真就是 1,假就是 0。所以不管你輸入多少分,90<=score 的執行結果要麼是 1,要麼是 0,肯定 <=100。所以不管輸入多少分,90<=score<=100永遠都成立,所以輸出的永遠都是「優秀!」。所以不能那麼寫。

下面寫一個程序看一下:
# include <stdio.h>
int main(void)
{
float score = 1000;
int i = (90<=score<=100);
printf("i = %d\n", i);
return 0;
}
運行結果:
i = 1

不管 score 是多少,90<=score<=100永遠都成立,所以 i 永遠都是 1。

⑥ c++中的if後的括弧里的數字的取值范圍是不是int的取值范圍,有沒有增加if後的括弧里的數字取值范圍的方法

不是的。if後面判斷括弧里的值可以是任何基本類粗讓型,只有零和非零的區指慶別,無所岩逗局謂取值范圍。也就是當( )里的值為非零時(即使是負數和小數也一樣),執行if後面的語句,當( )里的值為零時,執行else後面的語句。如果非要說有取值范圍,那就看( )里的變數或表達式是什麼類型,其取值范圍就跟這個類型一樣。

⑦ C語言編寫程序,輸入一個字元,如果是數字字元,則轉換成對應的數字

1、新建一個工程和.c文件 ,輸入頭文件和主函數。