① c++中 用bool類型作判斷條件 怎麼判斷c的 c與a b有什麼關系
在c語言中除了false和true外,還有其他的判斷真假,c語言中默認0為假,非0為真,所以你輸入C的值若C為0那麼if(c)不成立,若C非0則if(c)為真成立,照你的代碼看a,b,c無關系
② C語言判斷布爾矩陣 我已有的思路是每行每列求和找出和是基數的行數和列數 如果兩個相等則可以改
像這類問題啊,C語言行加和的話,還是弄個循環什麼的,判斷是否為偶數或者奇數。定義兩個數組,記錄一下那些行或者列是奇數。而且C語言在執行循環上速度很快,沒有必要再提升一些執行速度。
當然兩次兩層循環來計算行和列的和的確有點浪費資源,所以代碼優化就在這里進行
假設n為矩陣的行和列數:
定義col[n],row[n],初始為0。
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
row[i]=row[i]+a[i][j];
col[j]=col[j]+a[i][j];
}
}
這樣就能計算行和列的情況(還算巧妙)。
然後一個循環對兩個數組進行奇偶判斷(實際上在上面的循環內部,已經能夠判斷row即每行的奇偶情況了)。可以通過另外的數組來保存奇數時行和列的坐標。最後進行判斷就可以了。
這樣算是比較符合思路又能很好體現要求的代碼了。
但如果還需要優化的話,仍能省掉判斷奇偶的額外循環。當然我並不清楚for循環和if哪個會更省時間,只是為了省代碼的話,如下:
在上面的兩層循環內部,col[j]=col[j]+a[i][j];執行後,當i等於n-1時,即每列的數據已經加到最後一行了,因此也可以判斷是否為奇數。具體的更改如下:
定義兩個數組rec_row[n],rec_col[n]進行坐標記錄。
m,n為初始值為0,用於計數。
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
row[i]=row[i]+a[i][j];
col[j]=col[j]+a[i][j];
if(i==3)
{
if(col[j]%2==1)
rec_row[n++]=j,
}
}
if(row[i]%2==1)
rec_row[m++]=i,
}
這樣通過m,n就可以判斷是否可以轉換。如果能轉換,通過兩個數組就可以確定下標,循環次數為m(m和n是相等的)
如果還覺得每次判斷i是不是等於3,覺得太費時間,那麼就把當i=3時的循環拉到外面,進行單獨的加和判斷,我想這的確會很省了時間,但代碼卻不容易讓人看懂。
寫了這么多,我也是收獲很多啊,給採納吧……
③ 布爾矩陣(用C語言編程)
#include<stdio.h>
#include<string.h>
intmain()
{
//freopen("in.txt","r",stdin);
intn,m[100][100],r[100],c[100],i,j,x,y,R,C;
while(scanf("%d",&n)!=EOF,n)
{
memset(r,0,sizeof(r));
memset(c,0,sizeof(c));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
scanf("%d",&m[i][j]);
r[i]+=m[i][j];
c[j]+=m[i][j];
}
for(R=C=i=0;i<n;i++)
{
if(r[i]%2)
{
R++;
x=i+1;
}
if(c[i]%2)
{
C++;
y=i+1;
}
}
if(!R&&!C)
puts("OK");
elseif(R==1&&C==1)
printf("Changebit(%d,%d) ",x,y);
else
puts("Corrupt");
}
return0;
}
聽說回答的夠長才能夠自動採納
④ C語言關於布爾型的問題
類型不匹配!沒有對應的bool類型的格式控制符。
應該這么寫if(isLeapYear(year)) printf("true");
else printf("false");
⑤ C語言BOOL值與零值判斷的問題
if (flag == TRUE)
if (flag == 1 )
if (flag == FALSE)
if (flag == 0)
flag == TRUE 這個還要進行一次比較操作,
if ( flag )就直接進行了判斷.
而且 有== 這個一般是和int型的作比較,
比如 if(i==3)
如果是bool型的話,容易混淆.
所以比較統一的寫法是 :
if ( flag )
if ( !flag )
補充一下:
如果是指針型,就這樣比較
if(p==NULL)
if(p!=NULL)
整型
if(i==3)
if(i!=3)
bool型
if(b)
if(!b)
就這個意思,
⑥ C語言里有沒有布爾型這個數據類型
布爾型數據的值只有兩個:false和true,前者序號為0,後者序號為1。布爾類型數據最少,但用途廣泛,主要用於程序設計中的流程式控制制和邏輯判斷。
布爾型數據可作如下運算操作:
not(邏輯非),and(邏輯與),or(邏輯與)。
⑦ C語言中BOOL命令的使用方法
bool是關鍵字,用來定義變數的類型的,不是命令。在C語言中:bool a = true;bool b = false;就是這樣使用的。
⑧ 什麼是布爾型
布爾型Boolean是編程語言pascal、VB、C++等的一種類型變數類型。
布爾型的值只有兩個:false(假)和true(真)。且false的序號為0,true的序號是1(或者是非0)。
用於布爾型的標准函數有
ord(取序號),pred(前導),succ(後繼)
注意:false沒有前導,true沒有後繼。
用於布爾量的運算有布爾運算(或稱邏輯運算),它們是:
AND(與),OR(或),NOT(非)
對布爾量還可以進行關系運算(或稱比較運算)。關系運算有以下6種:
<(小於),<=(小於等於),=(等於)
>(大於),>=(大於等於),<>(不等於)
Pascal的名稱是為了紀念十七世紀法國著名哲學家和數學家Blaise Pascal而來的,它由瑞士Niklaus Wirth教授於六十年代末設計並創立的。Pascal語言語法嚴謹,層次分明,程序易寫,可讀性強,是第一個結構化編程語言。
Pascal語言廣泛用於各種軟體,程序分為名稱(program後自擬)、設置(var後規定)、開始(begin)、程序(正文)、讀取(read/read ln)、結束(end),結構層次強,嚴謹而又緊密。
C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
⑨ C語言中 bool的用法
布爾型(bool)變數的值只有 真 (true) 和假 (false)。
布爾型變數可用於邏輯表達式,也就是「或」「與」「非」之類的邏輯運算和大於小於之類的關系運算,邏輯表達式運算結果為真或為假。
bool可用於定義函數類型為布爾型,函數里可以有 return TRUE; return FALSE 之類的語句。
布爾型運算結果常用於條件語句:if (邏輯表達式){如果是 true 執行這里;}else{如果是 false 執行這里;};
(9)c語言編程布爾類型判斷奇偶擴展閱讀
使用bool邏輯型變數的優點:
1、提高程序的可讀性
bool類型的變數只可能有兩個值true或false,在沒有統一的布爾類型在大型的工程項中特別是用到第三方程序庫時,可能使用不同的手段模擬布爾類型以提交代碼的可讀性,這樣會使得代碼有些混亂,C語言中引入了bool內置類型,解決了代碼的一致性問題。
2、提高程序的性能
bool在絕大多數編譯器編譯時都將其實現為1位元組,即sizeof(bool)的值為1,加上其只有兩個值的值域{true, false},是C語言中最小的數據類型了。
雖然char、unsigned char和signed char類型在C語言中沒有特定的實現要求,但一般也實現為一個位元組,這樣看來與bool類型從內存空間的佔用上並沒有性能上的差異。
⑩ C語言中的邏輯值「真」是用什麼表示的,邏輯值「假」是用什麼表示的
邏輯值只有兩個值,即true(真)和false(假),在C語言中true用1表示,false用0表示。
需要注意的是,在C語言中並沒有邏輯數據類型,在需要保存邏輯值時,可以用整型類型保存。例如:
int x=10,y=20;
int c = (x>y);//x>y此表達式為假,則整個表達式的值為0,即c變數的值為0;
printf(「c=%d 」,c);//結果:c=0
(10)c語言編程布爾類型判斷奇偶擴展閱讀:
運算注意事項
當表達式進行&&運算時,只要有一個為假,總的表達式就為假,只有當所有都為 真時,總的式子才為真。當表達式進行||運算時,只要有一個為真,總的值就為真,只有當所有的都為假時,總的式子才為假。
邏輯非(!)運算是把相應的變數 數據轉換為相應的真/假值。若原先為假,則邏輯非以後為真,若原先為真,則邏輯非以後為假。