#includeiostream
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)衡山,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
using?namespace?std;
class?Node?{
public:
int?data;
Node*?next;
Node(int?_data)?{
data?=?_data;
next?=?NULL;
}
};
class?LinkList?{
private:
Node*?head;
public:
LinkList()?{
head?=?NULL;
}
void?insert(Node?*node,?int?index)?{
if?(head?==?NULL)?{
head?=?node;
return;
}
if?(index?==?0)?{
node-next?=?head;
head?=?node;
return;
}
Node?*current_node?=?head;
int?count?=?0;
while?(current_node-next?!=?NULL??count??index?-?1)?{
current_node?=?current_node-next;
count++;
}
if?(count?==?index?-?1)?{
node-next?=?current_node-next;
current_node-next?=?node;
}
}
void?output()?{
if?(head?==?NULL)?{
return;
}
Node?*current_node?=?head;
while?(current_node?!=?NULL)?{
cout??current_node-data??"?";
current_node?=?current_node-next;
}
cout??endl;
}
void?delete_node(int?index)?{
if?(head?==?NULL)?{
return;
}
Node?*current_node?=?head;
int?count?=?0;
if?(index?==?0)?{
head?=?head-next;
delete?current_node;
return;
}
while?(current_node-next?!=?NULL??count??index?-1)?{
current_node?=?current_node-next;
count++;
}
if?(count?==?index?-?1??current_node-next?!=?NULL)?{
Node?*delete_node?=?current_node-next;
current_node-next?=?delete_node-next;
delete?delete_node;
}
}
void?reverse(){
if(head?==?NULL){
return;
}
Node?*next_node,*current_node;
current_node?=?head-next;
head-next?=?NULL;
while(current_node?!=?NULL){
next_node?=?current_node-next;
current_node-next?=?head;
head?=?current_node;
current_node?=?next_node;
}
}
};
int?main()?{
LinkList?linklist;
for?(int?i?=?1;?i?=?10;?i++)?{
Node?*node?=?new?Node(i);
linklist.insert(node,?i?-?1);
}
linklist.output();
linklist.delete_node(3);
linklist.output();
linklist.reverse();
linklist.output();
return?0;
}
int main()
{
Sqlist sqlist;//定義一個(gè)鏈表
int n;//存儲(chǔ)要插入到鏈表中的元素
printf("Input a number:");
scanf("%d",n);
Insert(sqlist,0,n);//調(diào)用插入函數(shù)Insert(),由于是第一次插入,位置參數(shù)x可以設(shè)為0
//根據(jù)需要,可以添加對(duì)應(yīng)的代碼,實(shí)現(xiàn)相應(yīng)功能。
return 0;
}
如果是初學(xué)者,沒必要從數(shù)據(jù)結(jié)構(gòu)開始,可以先看一些C的基礎(chǔ)知識(shí),先從只有main()函數(shù)的簡單函數(shù)入手,有一定的積累后,這些函數(shù)調(diào)用、復(fù)雜的實(shí)現(xiàn)自然而然就會(huì)了。貴在堅(jiān)持……
#include
cstdlib
#include
iostream
using
namespace
std;
//使用std即標(biāo)準(zhǔn)命名空間
int
main(int
argc,
char
*argv[])
//argc是命令參數(shù)的個(gè)數(shù),argv是參數(shù)的內(nèi)容
{
system("PAUSE");
return
EXIT_SUCCESS;
//返回給操作系統(tǒng),告知程序已正常結(jié)束
}
此外main還有其他名字
比如:
wmain
_tmain
C語言代碼如下:
#includestdio.h
int main()
{
int a,b;
printf("please enter two number:"); ? ?-----兩個(gè)數(shù)字用空格隔開,以回車鍵結(jié)束輸入。
scanf("%d %d",a,b);if(ab)
printf("The max is %d",a);
else if(ba)
printf("The max is %d",b);
else
printf("The two Numbers are the same");?
return 0;
}
運(yùn)行結(jié)果圖:
擴(kuò)展資料:
c語言特點(diǎn):
基本特性:
1、高級(jí)語言:它是把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來的工作單元。?
2、結(jié)構(gòu)式語言:結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。
C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。
3、代碼級(jí)別的跨平臺(tái):由于標(biāo)準(zhǔn)的存在,使得幾乎同樣的C代碼可用于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。C語言對(duì)編寫需要進(jìn)行硬件操作的場合,優(yōu)于其它高級(jí)語言。?[
4、使用指針:可以直接進(jìn)行靠近硬件的操作,但是C的指針操作不做保護(hù),也給它帶來了很多不安全的因素。
C++在這方面做了改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性,受到了一些用戶的支持,但是,由于這些改進(jìn)增加語言的復(fù)雜度,也為另一部分所詬病。
Java則吸取了C++的教訓(xùn),取消了指針操作,也取消了C++改進(jìn)中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機(jī)中運(yùn)行,運(yùn)行效率低于C++/C。
一般而言,C,C++,java被視為同一系的語言,它們長期占據(jù)著程序使用榜的前三名。
特有特點(diǎn):
1.C語言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域(variable scope)以及遞歸功能的過程式語言。
2.C語言傳遞參數(shù)均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3.不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起。
4.只有32個(gè)保留字(reserved keywords),使變量、函數(shù)命名有更多彈性。
5.部份的變量類型可以轉(zhuǎn)換,例如整型和字符型變量。
6.通過指針(pointer),C語言可以容易的對(duì)存儲(chǔ)器進(jìn)行低級(jí)控制。
7.預(yù)編譯處理(preprocessor)讓C語言的編譯更具有彈性。
優(yōu)缺點(diǎn):
優(yōu)點(diǎn)
1.簡潔緊湊、靈活方便
C語言一共只有32個(gè)關(guān)鍵字,9種控制語句,程序書寫形式自由,區(qū)分大小寫。
把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。
C 語言可以像匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。
2.運(yùn)算符豐富
C語言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。
C語言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。
從而使C語言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語言中難以實(shí)現(xiàn)的運(yùn)算。
3、數(shù)據(jù)類型豐富
C語言的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。并引入了指針概念,使程序效率更高。
4、表達(dá)方式靈活實(shí)用
C語言提供多種運(yùn)算符和表達(dá)式值的方法,對(duì)問題的表達(dá)可通過多種途徑獲得,其程序設(shè)計(jì)更主動(dòng)、靈活。
它語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,如對(duì)整型量與字符型數(shù)據(jù)及邏輯型數(shù)據(jù)可以通用等。
5、允許直接訪問物理地址,對(duì)硬件進(jìn)行操作
由于C語言允許直接訪問物理地址,可以直接對(duì)硬件進(jìn)行操作,因此它既具有高級(jí)語言的功能,又具有低級(jí)語言的許多功能,能夠像匯編語言一樣對(duì)位(bit)、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可用來寫系統(tǒng)軟件。
6、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高
C語言描述問題比匯編語言迅速,工作量小、可讀性好,易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng).
C語言一般只比匯編程序生成的目標(biāo)代碼效率低10%~20%。
7、可移植性好
C語言在不同機(jī)器上的C編譯程序,86%的代碼是公共的,所以C語言的編譯程序便于移植。在一個(gè)環(huán)境上用C語言編寫的程序,不改動(dòng)或稍加改動(dòng),就可移植到另一個(gè)完全不同的環(huán)境中運(yùn)行。
8、表達(dá)力強(qiáng)
C語言有豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算符。包含了各種數(shù)據(jù)結(jié)構(gòu),如整型、數(shù)組類型、指針類型和聯(lián)合類型等,用來實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。
C語言的運(yùn)算符有34種,范圍很寬,靈活使用各種運(yùn)算符可以實(shí)現(xiàn)難度極大的運(yùn)算。
C語言能直接訪問硬件的物理地址,能進(jìn)行位(bit)操作。兼有高級(jí)語言和低級(jí)語言的許多優(yōu)點(diǎn)。
它既可用來編寫系統(tǒng)軟件,又可用來開發(fā)應(yīng)用軟件,已成為一種通用程序設(shè)計(jì)語言。
另外C語言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。
缺點(diǎn)
1、 C語言的缺點(diǎn)主要表現(xiàn)在數(shù)據(jù)的封裝性上,這一點(diǎn)使得C在數(shù)據(jù)的安全性上有很大缺陷,這也是C和C++的一大區(qū)別。
2、 C語言的語法限制不太嚴(yán)格,對(duì)變量的類型約束不嚴(yán)格,影響程序的安全性,對(duì)數(shù)組下標(biāo)越界不作檢查等。
從應(yīng)用的角度,C語言比其他高級(jí)語言較難掌握。也就是說,對(duì)用C語言的人,要求對(duì)程序設(shè)計(jì)更熟練一些。
參考資料來源:C語言-百度百科
#include "stdio.h"#include "conio.h"#include "stdlib.h"#include "string.h"#define MAXSTUDENT (1024)#define CheckData()\{\if(!studentNum)\{\printf("沒有學(xué)生數(shù)據(jù),按任意鍵返回……\n");\getch();\return;\}\}\int studentNum = 0;typedef struct Student{int id;int cScore;int mathScore;}Student;void ClearStudent(Student* student){memset((void*)student,0,sizeof(*student));}void ShowMainMenu(){system("cls");printf("1.增加記錄\n2.計(jì)算每個(gè)學(xué)生的總成績\n3.計(jì)算每門課程的平均成績\n4.按座號(hào)查詢學(xué)生的成績\n5.按總分排名\n6.輸出前n名的學(xué)生的成績\n7.修改成績\n0.退出\n");}void ShowCountScore(const Student* student){system("cls");CheckData();for(int i = 0;i studentNum;i++)printf("學(xué)生%04d的總成績:%d\n",(student+i)-id,(student+i)-cScore+(student+i)-mathScore);printf("\n按任意鍵繼續(xù)……");getch();}void ShowClassAvg(const Student* student){system("cls");CheckData();double sumc = 0;double summath = 0;for(int i = 0;i studentNum;i++){sumc += (student+i)-cScore;summath += (student+i)-mathScore;}printf("C語言平均成績?yōu)椋?lf\n",sumc/studentNum);printf("數(shù)學(xué)平均成績?yōu)椋?lf\n",summath/studentNum);printf("\n按任意鍵繼續(xù)……");getch();}void AddStudent(Student* student){system("cls");if(studentNum == MAXSTUDENT){printf("人數(shù)已滿,按任意鍵返回……\n");getch();}printf("分別錄入座號(hào)、C語言成績、數(shù)學(xué)成績:\n");int id = 0;int cScore = 0;int mathScore = 0;scanf("%d%d%d",id,cScore,mathScore);for(int i = 0 ;i studentNum;i++)if((student+i)-id == id){printf("座號(hào)重復(fù),按任意鍵返回……\n");getch();return;}(student+studentNum)-id = id;(student+studentNum)-cScore = cScore;(student+studentNum)-mathScore = mathScore;studentNum++;}void SelectFromID(const Student* student){system("cls");CheckData();printf("輸入查詢ID:\n");int id = 0;scanf("%d",id);printf("查詢結(jié)果:\n");for(int i = 0;istudentNum;i++)if(id == (student+i)-id){printf("C語言成績?yōu)椋?d\n數(shù)學(xué)成績?yōu)椋?d\n",(student+i)-cScore,(student+i)-mathScore);break;}printf("\n按任意鍵繼續(xù)……");getch();}void SortForCount(Student* student){system("cls");CheckData();for(int i = 0;i studentNum;i++){for(int j = studentNum -1;j i;j--)if(((student+j)-cScore+(student+j)-mathScore) ((student+j-1)-cScore+(student+j-1)-mathScore)){Student stu;stu = *(student+j);*(student+j) = *(student+j-1);*(student+j-1) = stu;}}}void SortForN(Student* student,int n){SortForCount(student);if(!studentNum)return;n = nstudentNum?studentNum:n;for(int i = 0;i n;i++)printf("第%d名:\nID:%d\nC語言成績?yōu)椋?d\n數(shù)學(xué)成績?yōu)椋?d\n總分為:%d\n\n",i+1,(student+i)-id,(student+i)-cScore,(student+i)-mathScore,(student+i)-cScore+(student+i)-mathScore);printf("\n按任意鍵繼續(xù)……");getch();}void UpdateScore(Student* student){system("cls");CheckData();printf("輸入修改ID:\n");int id = 0;scanf("%d",id);int i = 0;for(;istudentNum;i++)if(id == (student+i)-id)break;if(i == studentNum)printf("\n查無此人,按任意鍵繼續(xù)……");else{printf("輸入欲修改的C語言成績、數(shù)學(xué)成績:\n");int cScore = 0;int mathScore = 0;scanf("%d%d",cScore,mathScore);(student+i)-cScore=cScore;(student+i)-mathScore = mathScore;printf("\n按任意鍵繼續(xù)……");}getch();}void RunStudent(Student* student){while(1){ShowMainMenu();char chGet = getch();switch(chGet){case '1':AddStudent(student);break;case '2':ShowCountScore(student);break;case '3':ShowClassAvg(student);break;case '4':SelectFromID(student);break;case '5':SortForCount(student);for(int i =0;istudentNum;i++)printf("第%d名:\nID:%d\nC語言成績?yōu)椋?d\n數(shù)學(xué)成績?yōu)椋?d\n總分為:%d\n\n",i+1,(student+i)-id,(student+i)-cScore,(student+i)-mathScore,(student+i)-cScore+(student+i)-mathScore);printf("\n按任意鍵繼續(xù)……");getch();break;case '6':{int n = 0;printf("輸入N:\n");scanf("%d",n);SortForN(student,n);}break;case '7':UpdateScore(student);break;case '0':return;default:break;}}}int main(){Student* allStudent = (Student*)malloc(MAXSTUDENT*sizeof(Student));memset((void*)allStudent,0,MAXSTUDENT*sizeof(Student));RunStudent(allStudent);return 0;}
本文名稱:c語言編寫一個(gè)主函數(shù),c語言必須有一個(gè)主函數(shù)
文章位置:http://jinyejixie.com/article0/dssssoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、虛擬主機(jī)、網(wǎng)站內(nèi)鏈、、域名注冊(cè)、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)