解釋一下為什麼表示int型變數a不能被i整除可以表示成a i

2021-04-21 03:02:34 字數 3392 閱讀 7567

1樓:叫我文小浠

你所說copy的這個問題是需要結合判斷表示式的因為在條件判斷中只有兩種型別:

一、非零。二、零

而「int型變數a不能被i整除可以表示成a%i」a%i這個表示式本身的結果就可以理解為若能整除結果為零,而不能整除結果為非零。

比如if迴圈和while判斷中,if(a%i)這個表示式就可以理解為:如果能整除則條件不成立,不進入該**段,否則不能整除條件成立,進入該**段。

當然你如果想要把該判斷的成立條件顛倒,則可為:if(!(a%i))。while也是如此。

2樓:憶著昨日

a不能被i整除 就是a%i!=0 ,

if(a%i) 等價於 if(a%i != 0)

為什麼表示int型變數a不能被i整除可以表示成a%i,而不需要a%i!=0?

3樓:

不光是整除,凡是邏輯非0為「真」的判斷語句,其!=0的符號都可以省寫(只是「省寫」,編譯時仍按!=0對待)。

比如for(i=10;i;i--),其中兩個分號間的i就是i!=0的意思……

4樓:匿名使用者

c語言中,邏輯判斷時,「非0」就表示「真」

a%i != 0 的運算結果 與 a%i 的結果是相同的。

c語言中在while語句中a%i==0,表示可以整除還是不能整除

5樓:藤原子大雄

#includevoid main() s=s+j; i=i+1; } printf("%d\n", s); }

c語言:預處理是什麼意思?就是看不懂這句話的解釋!越具體越好,也可以通俗一點!

6樓:水晶葡萄

預處理,再編譯前需要做的工作。預處理主要處理兩部分東西,標頭檔案和巨集。

對於標頭檔案,做操作。比如再某個.c中include了一個標頭檔案,這一行預處理時就會被替換為標頭檔案的內容。

對於巨集,比如你define了一個巨集。這裡就會把程式裡面所有用到這個巨集的地方替換掉。當然巨集還有其他操作,但是它們都是再預處理階段就被處理了的

7樓:匿名使用者

第十一章 預處理概述

在前面各章中,已多次使用過以「#」號開頭的預處理命令。如包含命令# include,巨集定義命令# define等。在源程式中這些命令都放在函式之外, 而且一般都放在原始檔的前面,它們稱為預處理部分。

  所謂預處理是指在進行編譯的第一遍掃描(詞法掃描和語法分析)之前所作的工作。預處理是c語言的一個重要功能, 它由預處理程式負責完成。當對一個原始檔進行編譯時, 系統將自動引用預處理程式對源程式中的預處理部分作處理, 處理完畢自動進入對源程式的編譯。

  c語言提供了多種預處理功能,如巨集定義、檔案包含、 條件編譯等。合理地使用預處理功能編寫的程式便於閱讀、修改、 移植和除錯,也有利於模組化程式設計。本章介紹常用的幾種預處理功能。

巨集定義在c語言源程式中允許用一個識別符號來表示一個字串, 稱為「巨集」。被定義為「巨集」的識別符號稱為「巨集名」。在編譯預處理時,對程式中所有出現的「巨集名」,都用巨集定義中的字串去代換, 這稱為「巨集代換」或「巨集」。

  巨集定義是由源程式中的巨集定義命令完成的。 巨集代換是由預處理程式自動完成的。在c語言中,「巨集」分為有引數和無引數兩種。

下面分別討論這兩種「巨集」的定義和呼叫。 無參巨集定義

無參巨集的巨集名後不帶引數。其定義的一般形式為: #define 識別符號 字串 其中的「#」表示這是一條預處理命令。

凡是以「#」開頭的均為預處理命令。「define」為巨集定義命令。 「識別符號」為所定義的巨集名。

「字串」可以是常數、表示式、格式串等。在前面介紹過的符號常量的定義就是一種無參巨集定義。 此外,常對程式中反覆使用的表示式進行巨集定義。

例如: # define m (y*y+3*y) 定義m表示式(y*y+3*y)。在編寫源程式時,所有的(y*y+3*y)都可由m代替,而對源程式作編譯時,將先由預處理程式進行巨集代換,即用(y*y+3*y)表示式去置換所有的巨集名m,然後再進行編譯。

#define m (y*y+3*y)

main()

上例程式中首先進行巨集定義,定義m表示式(y*y+3*y),在s= 3*m+4*m+5* m中作了巨集呼叫。在預處理時經巨集後該語句變為:s=3*(y*y+3*y)+4(y*y+3*y)+5(y*y+3*y);但要注意的是,在巨集定義中表示式(y*y+3*y)兩邊的括號不能少。

否則會發生錯誤。

當作以下定義後: #difine m y*y+3*y在巨集時將得到下述語句: s=3*y*y+3*y+4*y*y+3*y+5*y*y+3*y;這相當於; 3y

8樓:匿名使用者

提前說明了的叫預處理比如定義一個變數#define max 1000**中所有的字元 max 就是1000比如#define print printf("ok");**中遇到print字串就是printf函式,輸出ok!預處理就是預先讓編譯系統知道,他的出現會有目的的在變化一不變數時只需要改預處理,所有資料都會改變,程式很容易維護,還有重要的是編譯系統執行預處理其效率高```做事情就是預先準備可能發生將要發生的事情做個總體計劃...

9樓:匿名使用者

baidu.com/view/1334643.htm 先看下前兩個介紹預處理,根據字面意思是預先做的處理在c語言裡包含三個方面1.

巨集定義2.包含檔案3.條件編譯這三個方面在上述網頁中有詳細介紹如有問題,請追問

誰能給我解釋一下,這個pascal程式是什麼意思?為什麼要這樣解決這個問題?請詳細地解釋一下。謝謝!!!

10樓:聽不清啊

這是不我改的嗎?

var a:array[1..10000] of longint;

i,j,n,k,t,h:longint;

begin read(n,k);

for h:=1 to n do read(a[h]);

for i:=1 to n-1 do

for j:=i+1 to n do

if a[i]>a[j] then begint:=a[j];

a[j]:=a[i];

a[i]:=t;

end;

i:=1; j:=1;

while (ja[i-1] then inc(j);

end;

if (i=n)and(j

end.

11樓:匿名使用者

這個程式讀入資料後進行排序,然後就能找出第k小整數

請幫我解釋一下網路地址,解釋一下為什麼IP地址要分網路地址和主機地址,不要說規定,這樣有什麼好處?

沒有http 如果是個 的話 129.23.128.0 後面自要不是漢字。英文數字 隨便加 代表什麼意思 自有做這個 的人知道 都是一些超文字文件 fid 39 這種常見 你說的還沒注意過 找個 ip的 真不容易 http 64.208.224.44 forumdisplay.php?fid 39不...

經濟學原理幫我解釋一下為什麼

1.消費者均衡的實現條件是消費者花在每一元錢上的商品的邊際效用都相等。否則,理性的消費者就會調整這兩種商品的購買數量,減少對每一元錢邊際效用較小的那種商品的購買,增加對每一元錢邊際效用較大的那種商品的購買,從而達到優化,使總效用增加。就像你買水果,蘋果和梨都一元錢一個,多買一個蘋果給你帶來的邊際效用...

誰能解釋一下為什麼負負得正如( 23)6有什麼理論依據

你學了數軸嗎?在數軸上0 3 表示0比 3 大多少 顯然大3 實際事例中支出3元錢為負3不支出為0 顯然不支出比支出3元錢多3 所以0 3 3 所以 3 3 再如溫度計,溫度就有 零上 與 零下 兩種情,零度比 4度高4度 所以0 4 4 所以 4 4 你所考慮的負負得正問題是代數學中的問題,高等代...