⑴ c語言1到100累加和
清楚演算法就可以很快寫出:
(1)只需輸入2個變數n和sum,且sum=n+sum.
(2)確定n的范圍為n<=100
(3)循環體為
for(n=1;n<=100;n++)
sum+=n;
(4)根據C語言編輯規則寫出程序
用for循環求:
#include<stdio.h>
int main(void)
{
int n,sum=0;
for(n=1;n<=100;n++)
sum+=n;
printf("1+2+...+100=%d ",sum)
return 0;
}
程序運行結果:
1+2+...+100=5050
(1)c加加與的演算法擴展閱讀:
for( i=1; i<=100; i++ ) sum=sum+i;
先給i賦初值1,判斷i是否小於等於100,若是則執行語句,之後值增加1。再重新判斷,直到條件為假,即i>100時,結束循環。相當於:
i=1;
while(i<=100){
sum=sum+i;
i++;
}
對於for循環中語句的一般形式,就是如下的while循環形式:
表達式1;
while(表達式2){
語句
表達式3;
}
使用for語句應該注意:
1) for循環中的「表達式1(循環變數賦初值)」、「表達式2(循環條件)」和「表達式3(循環變數增量)」都是選擇項,即可以預設,但分號(;)不能預設。
2) 省略了「表達式1(循環變數賦初值)」,表示不對循環控制變數賦初值。
3) 省略了「表達式2(循環條件)」,則不做其它處理時便成為死循環。例如:
for( i=1; ; i++ ) sum=sum+i;
相當於:i=1;
while(1){
sum=sum+i;
i++;
}
4) 省略了「表達式3(循環變數增量)」,則不對循環控制變數進行操作,這時可在語句體中加入修改循環控制變數的語句。例如:
for( i=1; i<=100 ; ){
sum=sum+i;
i++;
}
5) 省略了「表達式1(循環變數賦初值)」和「表達式3(循環變數增量)」。例如:
for( ; i<=100 ; ){
sum=sum+i;
i++;
}
相當於:
while(i<=100)
{sum=sum+i;
i++;
}
6) 3個表達式都可以省略。例如:
for( ; ; ) 語句
相當於:
while(1) 語句
7) 表達式1可以是設置循環變數的初值的賦值表達式,也可以是其他表達式。例如:
for( sum=0; i<=100; i++ ) sum=sum+i;
8) 表達式1和表達式3可以是一個簡單表達式也可以是逗號表達式。
for( sum=0,i=1; i<=100; i++ ) sum=sum+i;
或:
for( i=0,j=100; i<=100; i++,j-- ) k=i+j;
9) 表達式2一般是關系表達式或邏輯表達式,但也可是數值表達式或字元表達式,只要其值非零,就執行循環體。例如:
for( i=0; (c=getchar())!=』
』; i+=c );
又如:
for( ; (c=getchar())!=』 』 ; )
printf("%c",c);
⑵ C++和++C的區別
c++表示先引用c的值,再自加。如果c==3,c++是先取出3這個值,然後再自加變成4
++c表示先自加,在引用c的值。如果c==3,++c是先自加變成4,然後再取4這個值
⑶ c語言中的減減加加運算的演算法是
您好,減減加加的說法在C語言中一般被稱為自減或自增。
自減是指當前值減1,自增指當前值加一。
而每一種又可分為兩種,以i自減為例。
i--表示先使用i的功能,之後立刻減1;
--i表示先將i減1,然後使用i的功能。
比如下面的例子
i=3;
while(i--)
{
printf("%d",i);
}
與
i=3;
while(--i)
{
printf("%d",
i);
}
這兩個程序的結果分別是210和21
⑷ C語言和C++的區別
C語言與C++的區別有很多,下面是簡要概述:
1、面向不同
C語言是面向過程的,
C++是面向對象的。
函數庫
C語言有標準的函數庫,它們鬆散的,只是把功能相同的函數放在一個頭文件中;
C++對於大多數的函數都是有集成的很緊密,特別是C語言中沒有的C++中的API是對Window系統的大多數API有機的組合,是一個集體。但你也可能單獨調用API。
3、結構概念不同
C言中結構只有成員變數,而沒成員方法,C語而在但是在C語言中結構的成員是公共的,什麼想訪問它的都可以訪問;
C++中結構中,它可以有自己的成員變數和成員函數。
4、寫作數量不同
C語言可以寫很多方面的程序,
C++可以寫得更多更好,C++可以寫基於DOS的程序,寫DLL,寫控制項,寫系統。
5、組織不同
C語言對程序的文件的組織是鬆散的,幾乎是全要程序處理;
C++對文件的組織是以工程,各文件分類明確。
⑸ C與C++有何區別
C/C++是指C語或C++,是指一系列的語言
C和C++的關系:
好比是win98跟winXP的關系。C++是在C的基礎上增加了新的理論,玩出了新的花樣。所以叫C加加。
C和C++的區別:
C是一個結構化語言,它的重點在於演算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制)。
C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態信息得到輸出或實現過程(事務)控制。
所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「
設計這個概念已經被融入到C++之中
」。
再引用高手一些話:
C++與C有什麼不同呢?我們現在一步步地來分析一下
一、類,類對於初學者,它是一個累贅。類的封裝使得初學者對程序產生厭倦,感到不適和麻煩。
二、引用,引用是C++中最好盡量不要用它,除非萬不得已。引用對於初學者就更容易產生混淆,不知道哪個是引用,哪個是變數。
三、函數的重載,初學者學函數的重載好像沒什麼壞處,但是,這會使初學者潛意識里對C語言的變數類型的重要性產生淡化,要記住C語言是對變數類型最敏感了的,變數的類型在C語言里的重要性是不言而喻的。
四、流操作符,和上面同樣的道理,使得對變數類型的重要性產生淡化,有時會產生使初學者莫名其妙的結果。
五、操作符重載,典型的高級應用,初學者可能根本用不著,這個東東會讓他們覺得C++很難,門檻高,看不懂。
六、繼承,以及虛函數,看起來深奧,實用價值很低。還有些東東我就不發表評論了,如:new,delete操作符等
七、誤區:以問答形式:
問:C++是面向對象化的而C是面向過程化的?
答:第二對,第一問錯,C++並非完全面向對象化,真正的面向對象化的語言恐怕只有Java才算得上。
問:C++能實現C所不能的功能嗎?
答:至少我還沒有發現
問:學了C再學C++有障礙嗎?比如程序設計思想
答:至少我還沒有看見誰有此症狀。
問:學了C再學C++又要重頭開始嗎?
答:不,C++下可以實現C語言的一切功能。
問:我學完了C一定還要學C++才能編程嗎?
答:完全沒必要。
問:C++比C好在哪裡?
答:更加符合軟體工程學
問:學完了C再學C++是不是很容易?
答:那要看你是不是真正的學完了C語言。
希望你能對C/C++概念上有所了解。
對於你的補充問題,個人認為雖然可以,但是C語言是基礎,最好能先學C語言,這樣並不是浪費時間,反而對你學習C++更有幫助,令你更易上手!
⑹ C,C+和C++它們有什麼區別
只有C語言和C++語言,沒有C+語言。
1、出現時間不同
C++是C的超集,也可以說C是C++的子集,因為C先出現。按常理說,C++編譯器能夠編譯任何C程序,但是C和C++還是有一些小差別。
例如C++增加了C不具有的關鍵字。這些關鍵字能作為函數和變數的標識符在C程序中使用,盡管C++包含了所有的C,但顯然沒有任何C++編譯器能編譯這樣的C程序。
2、C程序可以省略函數原型,而C++不可以
一個不帶參數的C函數原型必須把void寫出來。而C++可以使用空參數列表。C++中new和delete是對內存分配的運算符,取代了C中的malloc和free。標准C++中的字元串類取代了C標准C函數庫頭文件中的字元數組處理函數(C中沒有字元串類型)。
C++中用來做控制態輸入輸出的iostream類庫替代了標准C中的stdio函數庫。C++中的try/catch/throw異常處理機製取代了標准C中的setjmp()和longjmp()函數。
3、關鍵字和變數不同
在C++中還增加了bool型變數和wchar_t型變數:布爾型變數是有兩種邏輯狀態的變數,它包含兩個值:真和假。如果在表達式中使用了布爾型變數。
那麼將根據變數值的真假而賦予整型值1或0。要把一個整型變數轉換成布爾型變數,如果整型值為0,則其布爾型值為假;反之如果整型值為非0,則其布爾型值為真。布兒型變數在運行時通常用做標志,比如進行邏輯測試以改變程序流程。
C++中還包括wchar_tt數據類型,wchar_t也是字元類型,但是是那些寬度超過8位的數據類型。許多外文字元集所含的數目超過256個,char字元類型無法完全囊括。wchar_t數據類型一般為16位。
標准C++的iostream類庫中包括了可以支持寬字元的類和對象。用wout替代cout即可。
4、強制類型轉換不同
有時候,根據表達式的需要,某個數據需要被當成另外的數據類型來處理,這時,就需要強制編譯器把變數或常數由聲明時的類型轉換成需要的類型。為此,就要使用強制類型轉換說明,格式如下:int* iptr=(int*) &table;
表達式的前綴(int*)就是傳統C風格的強制類型轉換說明(typecast),又可稱為強制轉換說明(cast)。強制轉換說明告訴編譯器把表達式轉換成指定的類型。
有些情況下強制轉換是禁用的,例如不能把一個結構類型轉換成其他任何類型。數字類型和數字類型、指針和指針之間可以相互轉換。當然,數字類型和指針類型也可以相互轉換,但通常認為這樣做是不安全而且也是沒必要的。強制類型轉換可以避免編譯器的警告。
5、函數重載
在C++中,允許有相同的函數名,不過它們的參數類型不能完全相同,這樣這些函數就可以相互區別開來。而這在C語言中是不允許的。
參考資料來源:網路-C++
參考資料來源:網路-C語言
⑺ C和C++具體區別
C和C++區別為:結構不同、設計不同、函數庫不同。
一、結構不同
1、C語言:C語言結構只有成員變數,而沒成員方法。
2、C++:C++結構中可以有自己的成員變數和成員函數。
二、設計不同
1、C語言:C語言進行過程化、抽象化的通用程序設計。
2、C++:C++既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。
三、函數庫不同
1、C語言:C語言有標準的函數庫,它們鬆散的,只是把功能相同的函數放在一個頭文件中。
2、C++:C++對於大多數的函數都是有集成的很緊密,是一個集體。
⑻ c語言和c++的區別和聯系
c++是C語言的聯系是C語言的代碼能夠幾乎百分百的能夠在C++的語言環境下運行,只是c++有自己的語法,可以說C++的底層和C語言一樣。區別是C是一個結構化語言,它的重點在於演算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入進行運算處理得到輸出。
一、主體不同
1、C語言:是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。
2、C++:是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計。
二、優勢不同
1、C語言:能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
2、C++:不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
三、特點不同
1、C語言:提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
2、C++:在C++中,類是支持數據封裝的工具,對象則是數據封裝的實現。C++通過建立用戶定義類支持數據封裝和數據隱藏。
⑼ c加加提問,克魯斯卡爾演算法是什麼
克魯斯卡爾演算法,從邊的角度求網的最小生成樹,時間復雜度為O(eloge)。和普里姆演算法恰恰相反,更適合於求邊稀疏的網的最小生成樹。
對於任意一個連通網的最小生成樹來說,在要求總的權值最小的情況下,最直接的想法就是將連通網中的所有邊按照權值大小進行升序排序,從小到大依次選擇。
由於最小生成樹本身是一棵生成樹,所以需要時刻滿足以下兩點:
生成樹中任意頂點之間有且僅有一條通路,也就是說,生成樹中不能存在迴路;
對於具有 n 個頂點的連通網,其生成樹中只能有 n-1 條邊,這 n-1 條邊連通著 n 個頂點。
連接 n 個頂點在不產生迴路的情況下,只需要 n-1 條邊。
判斷是否會產生迴路的方法為:在初始狀態下給每個頂點賦予不同的標記,對於遍歷過程的每條邊,其都有兩個頂點,判斷這兩個頂點的標記是否一致,如果一致,說明它們本身就處在一棵樹中,如果繼續連接就會產生迴路;如果不一致,說明它們之間還沒有任何關系,可以連接。
(6)
輸入連通網的邊數:
6 10
輸入連通網的頂點:
1
2
3
4
5
6
輸入各邊的起始點和終點及權重:
1,2,6
1,3,1
1,4,5
2,3,5
2,5,3
3,4,5
3,5,6
3,6,4
4,6,2
5,6,6
1,3
4,6
2,5
3,6
2,3
⑽ c和c++語言的演算法與JAVA類語言的演算法有什麼不一樣呢
演算法一般沒有區別,只是數據結構有所不同
C不支持類,完全面向過程
而C++支持類,支持向對像
JAVA是C++--,對C++進行改進
對一個程序來說,用C/C++/JAVA可以做到在演算法上完全一致的