規劃c語言
⑴ 高中生一枚,打算從事計算機編程,現在准備學習c語言,請問怎麼規劃,使用什麼軟體自己看書可行嗎
自學難度比較大,涉及的知識面比較多,還是參加培訓機構。
⑵ 關於C語言學習計劃
把Kernighan和Ritchie的 The C Programming Language這本書(238頁,ANSI C)看一遍就差不多了,這時候你寫不了什麼實用的程序(天才,一點就通的人例外)。
接下來你需要根據興趣愛好或職業規劃等來給自己選一個發展方向。如果急著靠它找工作,那麼就看看Windows,它入門快,很快就可以參與到求職競爭中去(這輩子也很可能局限於此)。
如果並不是急著用C來打扮自己,那麼建議看看Linux Programming Unleashed,然後根據更細的發展方向去看LDD、LKD或Linux應用編程等內容,這些東西入門稍有難度(只是稍有難度而已,別被那些沒耐性的Windows菜鳥給嚇著)。Linux搭配C語言應用范圍很廣,這類人在國內算是高端人才,不愁嫁的。
C語言是一個實用技術,本身的內容並不多,主要的學習精力將會用在各種各樣的庫函數上面,而各種庫函數往往有各自的適用范圍,不可能也沒必要甚至不應該亂學一氣(庫函數確實很多,亂學很容易造成混亂)。
總的來說,我的建議就是先看一遍The C Programming Language,然後給自己選一個發展方向,看那個方向適用的一些函數庫,如果還有精力,再看看Autotools工具包。
⑶ C語言學習規劃
只要你能夠將這一本教材的例子與練習做完,基本上考二級就沒有問題了。不過,上來的茫然不知所措的感覺,你能否挺過?挺過這一關,只要你肯學,學會應當不難。
⑷ 模糊演算法路徑規劃C語言實現的程序,感激不盡。
僅供參考~
#define MAX_VERTEX_NUM 100 //最大頂點數
#define MAX_INT 10000 //無窮大
typedef int AdjType;
typedef struct{
int pi[MAX_VERTEX_NUM];//存放v到vi的一條最短路徑
int end;
}PathType;
typedef char VType; //設頂點為字元類型
typedef struct{
VType V[MAX_VERTEX_NUM]; //頂點存儲空間
AdjType A[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; //鄰接矩陣
}MGraph;//鄰接矩陣表示的圖
//Floyd演算法
//求網G(用鄰接矩陣表示)中任意兩點間最短路徑
//D[][]是最短路徑長度矩陣,path[][]最短路徑標志矩陣
void Floyd(MGraph * G,int path[][MAX_VERTEX_NUM],int D[][MAX_VERTEX_NUM],int n){
int i,j,k;
for(i=0;i<n;i++){//初始化
for(j=0;j<n;j++){
if(G->A[i][j]<MAX_INT){
path[i][j]=j;
}else{
path[i][j]=-1;
}
D[i][j]=G->A[i][j];
}
}
for(k=0;k<n;k++){//進行n次試探
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(D[i][j]>D[i][k]+D[k][j]){
D[i][j]=D[i][k]+D[k][j];//取小者
path[i][j]=path[i][k];//改Vi的後繼
}
}
}
}
}
int main(){
int i,j,k,v=0,n=6;//v為起點,n為頂點個數
MGraph G;
int path[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//v到各頂點的最短路徑向量
int D[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//v到各頂點最短路徑長度向量
//初始化
AdjType a[MAX_VERTEX_NUM][MAX_VERTEX_NUM]={
{0,12,18,MAX_INT,17,MAX_INT},
{12,0,10,3,MAX_INT,5},
{18,10,0,MAX_INT,21,11},
{MAX_INT,3,MAX_INT,0,MAX_INT,8},
{17,MAX_INT,21,MAX_INT,0,16},
{MAX_INT,5,11,8,16,0}
};
for(i=0;i<n;i++){
for(j=0;j<n;j++){
G.A[i][j]=a[i][j];
}
}
Floyd(&G,path,D,6);
for(i=0;i<n;i++){//輸出每對頂點間最短路徑長度及最短路徑
for(j=0;j<n;j++){
printf("V%d到V%d的最短長度:",i,j);
printf("%d\t",D[i][j]);//輸出Vi到Vj的最短路徑長度
k=path[i][j];//取路徑上Vi的後續Vk
if(k==-1){
printf("There is no path between V%d and V%d\n",i,j);//路徑不存在
}else{
printf("最短路徑為:");
printf("(V%d",i);//輸出Vi的序號i
while(k!=j){//k不等於路徑終點j時
printf(",V%d",k);//輸出k
k=path[k][j];//求路徑上下一頂點序號
}
printf(",V%d)\n",j);//輸出路徑終點序號
}
printf("\n");
}
}
system("pause");
return 0;
}
⑸ 求一個動態規劃c語言例題及解答,本人菜鳥,狀態轉移弄暈了。。。
某國為了防禦敵國的導彈襲擊,發展出一種導彈攔截系統。但是這種導彈攔截 系統有一個缺陷:雖然它的第一發炮彈能夠達到任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的導彈來襲。由於該系統還在試 用階段,所以只有一套系統,因此有可能不能攔截所有的導彈。
Input
最多20個整數,分別表示導彈依次飛來的高度(雷達給出高度數據是不大於30000的正整數)
Output
整數M。表示:這套系統最多能攔截 M 枚導彈.
Sample Input
300 250 275 252 200 138 245
Sample Output
5
#include <stdio.h>
#define N 20
int main()
{
int a[N],n=0;
int b[N],i,j,k,max;
while(scanf("%d",&a[n])!=EOF)
{n++;}
//
b[n-1]=1;
for(i=n-1;i>=0;i--)
{
k=0;
for(j=n-1;j>i;j--)
{
if(a[j]<=a[i])
{
if(b[j]>k)
k=b[j];
}
}
b[i]=k+1;
}
//
for(i=0,max=b[0];i<n;i++)
{
if(b[i]>max)
max=b[i];
}
printf("%d",max);
return 0;
}
⑹ C語言復習計劃
把Kernighan和Ritchie的 The C Programming Language這本書(238頁,ANSI C)看一遍就差不多了,這時候你寫不了什麼實用的程序(天才,一點就通的人例外)。
接下來你需要根據興趣愛好或職業規劃等來給自己選一個發展方向。如果急著靠它找工作,那麼就看看Windows,它入門快,很快就可以參與到求職競爭中去(這輩子也很可能局限於此)。
如果並不是急著用C來打扮自己,那麼建議看看Linux Programming Unleashed,然後根據更細的發展方向去看LDD、LKD或Linux應用編程等內容,這些東西入門稍有難度(只是稍有難度而已,別被那些沒耐性的Windows菜鳥給嚇著)。Linux搭配C語言應用范圍很廣,這類人在國內算是高端人才,不愁嫁的。
C語言是一個實用技術,本身的內容並不多,主要的學習精力將會用在各種各樣的庫函數上面,而各種庫函數往往有各自的適用范圍,不可能也沒必要甚至不應該亂學一氣(庫函數確實很多,亂學很容易造成混亂)。
總的來說,我的建議就是先看一遍The C Programming Language,然後給自己選一個發展方向,看那個方向適用的一些函數庫,如果還有精力,再看看Autotools工具包。