A. c語言進階
C語言的經典書籍:
《數據結構:C語言版》 霍洛維茨 著
若是沒學過數據結構就匆匆編程,會有遇到很大瓶頸的。
《C專家編程》、《C和指針》、《C陷阱與缺陷》
這些書可以擴大你的知識面。
編程技術不僅僅在於一些細節的處理上,還體現在全局的設計思想。如何為設計劃分模塊比如何編出一個具有某些功能的模塊難度大許多。因此,建議你先別急著想要編出多牛的程序。而是多拓展一下自己對計算機知識的了解。現在才大二嘛。不了解這個領域,就匆匆選擇了一個方向,你會後悔的。
加深對計算機理解方面的書:
《深入理解計算機系統》——強力推薦,這個講得深入淺出,非常經典。
《計算機網路——自頂向下方法》
《操作系統概念》——西爾伯沙茨
還有《C++編程思想》,這本算是相當入門的C++書籍了(我一次接觸C++的書籍就是它)。
看這些書,你就會了解許多概念,和書中反復提到的編程思想。會極大的開闊你的視野。對編程相當有助益。而且,將來學起新技術會相對容易許多。
當然,你很迫不及待的要試試編程。那給你推薦一部不錯的代碼書《代碼大全》(第二版)史蒂夫·邁克康奈爾
B. C語言基本演算法
輸入:scanf("%d",&a);
百分號後面可以跟d,c,s,f等,分別代表輸入整型,字元,字元串,浮點型
賦值:=號,如a=10;
條件:if(條件){程序}
else{程序}
循環:循環有多個,比較常用的是for,和while
如:for(i=0;i<10;i++){程序}//for(初使化;條件;變化)
while(條件){程序}//while里條件成立執行括弧里代碼
C. C語言初學者進階學習數據結構與演算法路線方法
學之前先給自己定一個准確的目標,是要打好基礎,消除知識漏洞,還是說要做演算法大拿。
如果是後者,我表示沒啥可說的,《具體數學》--《演算法導論》--《計算機程序設計藝術》或許是條可以走的路。
如果是前者,可以先看《大話數據結構》,了解常見的數據結構,並實現之,算是入門。一個月左右可完成,不需要任何高等數學的底子;然後,可以去翻《數據結構與演算法分析--C語言描述》,推薦英文原版,個人感覺中文版的翻譯得很屎。看這本書的同時可以去ACM刷點水題,進度就要看個人悟性了,我磨蹭了快一年才翻了一遍,看完之後數據結構算是圓滿了。再之後可以看演算法了,可以翻一翻《演算法導論》。如果嫌過多,可以去借本演算法的入門書,有本沙特人寫的還算不錯,名字記不得了
D. C語言進階學習
恩、的確是這樣的、數據結構很重要的!不過、我建議看一本書、這個是C進階學習的、就是C陷阱和缺陷!
E. C語言中都有那些演算法
演算法並不屬於某種具體的語言,編程語言只是實現演算法的工具。
建議看一看《演算法導論》、《常用演算法程序集》(C語言描述)之類的書籍.
F. 數據結構中常見的演算法(C語言版)
1、冒泡排序(最容易考到)
#include<stdio.h>
#define N 5
void main()
{
int i=0,j=0;
int a[n],temp;
int *ptr1,*ptr2;
ptr1=&a[j+1];
ptr2=&temp;
printf("\n輸入數字串:\n",N);
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(a[j]<a[j+1])
{
/*交換元素*/
ptr2=a[j+1];
a[j+1]=a[j];
a[j]=ptr2;
}
}
}
printf("\n排序後的數字串:");
for(i=0;i<N;i++)
{
printf("%d",a[i]);
}
printf("\n");
}
2、統計字元個數
#include<stdio.h>
void main()
{
char line[100];
int i,count=0;
printf("\n請輸入一行字元: ");
gets(line);
i=0;
while(line[i]!='\0')
{
if(line[i]=='x'||line[i]=='X')
{
count++;
}
i++;
}
printf("\n其中X的個數為%d\n",count);
}
3、數字翻轉
#include<stdio.h>
void main()
{
int a,b;
a=0;
do
{
printf("\n請輸入一個數:");
scanf("%d",&a);
if(a<=0)
printf("該數必須為正數\n");
}while(a<=0);
printf("\n反轉後的數為:");
do
{
b=a%10;
printf("%d",b);
a=a/10;
}while(a!=0);
printf("\n");
}
我這里還有好多,需要的聯系我QQ
G. c語言各種演算法詳細講解及NOIP提高組初賽的復習資料,要全,急!!!
noip提高組的試題總體來說不是很難,
主要是好好熟悉基本概念,
基礎題的比重佔了很大比例,難題很少。
離散數學和數據結構的知識可以看看屈婉玲寫的那一本《離散數學》,以及嚴蔚敏的《數據結構》,不要看老外的書(雖然它們很好,但不適合noip考試),noip不會這么深入的考察。
不用太深入,只要熟悉常見的演算法(比如圖和樹的常見遍歷演算法以及最短距離演算法),還有比較重要的是集合論,總之離散數學不要太過於糾纏細節,noip考試不是考博,不會出男的演算法分析題。
計算機的基礎知識比較零散,各種常見硬體的原理可以在網上搜到。同樣,大概知道工作遠里就行,不要過分深入。
C語言編程部分,隨便找一本國人寫的入門書就行,主要是要知道各種基本數據結構如何用C語言實現,以及會編寫簡單的演算法就行(如查找排序遍歷)。
全是自己打的字,我08年參加noip的經驗就這些,希望對你有用。
H. c語言演算法
這個可以解方程
當然用程序寫也是可以的
#include<stdio.h>
int f()
{
int a,b,c,d;//分別枚舉,羊、犬、雞、兔的價值,然後代入。
const int MAX=500;
for(a=0;a<=1496/5;a++)
for(b=0;b<=1496/4&&a*5+b*4<=1496;b++)
for(c=0;c<=1496/3&&a*5+b*4+c*3<=1496;c++)
//for(d=0;d<=1496/2&&a*5+b*4+c*3+2*d<=1496;d++)
{
d=(1496-(a*5+b*4+c*3))/2;
if(5*a+4*b+3*c+2*d==1496//5羊4犬3雞2兔值錢1496,
&&4*a+2*b+6*c+3*d==1175//4羊2犬6雞3兔值錢1175
&&3*a+1*b+7*c+5*d==958//3羊1犬7雞5兔值錢958
&&2*a+3*b+5*c+1*d==861//2羊3犬5雞1兔值錢861
)
return b;
}
return -1;
}
int main()
{
//犬值121錢
printf("犬值%d錢\n",f());
return 0;
}
I. 常見的C語言排序演算法全集
冒泡排序(小數上浮或大數下沉)
選擇排序
直接插入排序
快速排序
J. c語言的 基礎 進階 高級 分別是什麼
基礎是語法 進階到演算法 高級包括高級演算法可以涉及系統的API
。。。。。。。。。。