『壹』 c語言程序編寫困難
就一個減法,搞那麼復雜:
#include<stdio.h>
intmain()
{
intb[19]={0,28,30,25,20,35,50,20,25,36,33,27,27,28,28,29,30,33,26};
inttree_num;
inti;
printf("請輸入樹木的原始序號:");
scanf("%d",&tree_num);
for(i=1;i<=18;i++)
{
if(b[i]>=tree_num)
break;
tree_num-=b[i];
}
printf("第%d位員工管理的第%d棵樹",i,tree_num);
return0;
}
非要用提示里的用另外一個數組一顆一顆來計數,那就這樣:
#include<stdio.h>
intmain()
{
intb[19]={0,28,30,25,20,35,50,20,25,36,33,27,27,28,28,29,30,33,26};
inta[19]={0};
inttree_num;
inti,j;
printf("請輸入樹木的原始序號:");
scanf("%d",&tree_num);
for(i=1,j=1;i<=tree_num;++i)
{
if(a[j]==b[j])
++j;
++a[j];
}
printf("第%d位員工管理的第%d棵樹",j,a[j]);
return0;
}
『貳』 c語言程序設計難點在哪裡
C語言是一種表達力很強的語言,而且與其他語言相比顯得比較精煉高效。在C語言中的語法部分,比較難的是指針,由於它很靈活,用好的話能大大提高效率,反之則容易出錯(一般是內存空間指向出錯,如指針空懸、內存泄露等),但是當你練多了,指針應該也不成問題(要有意識的去練),我覺得真正的難點在於演算法邏輯。理論上,C語言只要求你時刻知道自己在干什麼,要實現什麼功能,只要你的程序邏輯明晰,一般不用再DEBUG,一次就能成功,反之,如果自己都感覺模糊,那程序只會比你還模糊:-D,要極好的人品才能勉強運行成功,但出不出正確結果還不一定。解決的方法很簡單,就是練。每成功寫出一個程序,都會讓自己有所進步,積累多了,就能在編程之前在大腦里構建出清晰的藍圖,編程自然不在話下。祝你在通往程序員的道路上一路狂奔,呵呵
『叄』 學習c語言很難嗎
1、c語言的主要難點在於指針,鏈表,函數,數組,結構體,文件等等方面的知識,這些知識點因為其復雜的特性,學習起來稍微有點難度,但是只要多加學習,在編寫程序的過程中加以學習,也是能很好的掌握這些知識點的。
2、C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
『肆』 學習編程的C語言的難點是什麼
C語言的精髓也是它的難點就是指針,因為C里的大部分功能或特性的實現方法都是通過指針,如果能夠把指針弄懂,其他那些就迎刃而解了。
『伍』 c語言的難點
多維數組,鏈表,堆棧,函數參數傳遞(指針、結構)。
『陸』 c語言難點
C語言的難點主要是指針,C語言入門簡單,精通很難,想學好要多看代碼,多寫代碼,多犯錯。
『柒』 C語言基礎的幾個難點解析
一、整型數據的范圍
不同類型的數據在內存中佔用的存儲單元長度不同,以VC++6.0的編譯環境為例,基本整型(int)數據分配4個位元組,短整型(short int)數據分配2個位元組。我們以short int為例。1個位元組為8個二進制位,每個短整型數據分配2個位元組,即16位。對於有符號位的短整型(signed short int,默認的),最左面一位作為符號位,0表示正,1表示負。即能存儲的最大數為0111111111111111,第一位是0,表示正數,後邊15位都是1,轉換為十進制為32767;最小數為1000000000000000,轉換為十進制為-32768。超出此范圍,即為「溢出」。例如:
short int a,b,c,d; a=32767;b=a+1; c=-32768;d=b-1;
printf("b=%d\t",b); printf("d=%d\n",d); 輸出結果為b=-32768 d=32767
對於無符號的短整型(unsigned short int),最小為0000000000000000,最大為1111111111111111,范圍0~65535。例如:
unsigned short int e=65535,f; f=e+1;
printf("f=%d\n",f); 輸出結果為f=0
二、運算符
算術運算符有+,-,*,/,%,++,--。其中,*號在表達式中不可以省略,如b2-4ac,寫成表達式為b*b-4*a*c。/和%要區分好,/為商,%為余。如a可以被b整除,表示為a%b==0。++,--的使用方法有兩種:一種i++,i--,先使用i原值,再使i的值加或減1;第二種++i,--i,先使i的值加或減1,再使用i的新值。例如:
int i=11; printf("%d\n",i++ * 1/3); 輸出結果為3。
int i=11; printf("%d\n",++i * 1/3); 輸出結果為4。
自加自減運算符在後邊的學習中會經常用到,要好好理解。
邏輯運算符有&&,||,!。在邏輯表達式中,不是所有的邏輯運算符都執行,只在必須執行下一個邏輯運算符才能求出表達式的解的時候,才執行該運算符。a && b只有a為真時,才判斷b的值。換句話說,a如果為假,b就不執行。同理,a || b,a如果為真,b就不用執行。例如:
int m=1,n=1,a=1,b=1;
printf(「表達式=%d\t」,(m=a>b)&&(n=a>b)); printf("m=%d,n=%d\n",m,n);
輸出結果為 表達式=0 m=0,n=1
常用的運算符的優先順序別從高到低排序為:!,算術運算符(++,--高於*,/,%高於+,-),關系運算符(>,>=,<,<=高於==,!=),&&,||,賦值運算符,逗號運算符。
三、比較數的大小
例如:編寫程序,輸出三個整數的最大值。剛接觸C語言的學生,大部分學生上機實踐都可以完成這個程序,但是思路不太好。調整演算法思路,便於以後程序的編寫。
main( )
{ int a,b,c,max; max=a;
if(b>max) max=b; if(c>max) max=c; printf("max=%d\n",max);}
同理,編寫程序,輸出10個整數的最大值。
main( )
{ int a[10],max,i; for(i=0;i<=9;i++) scanf("%d",&a[i]);
max=a[0]; for(i=1;i<=9;i++) if(a[i]>max) max=a[i];
printf("max=%d",max); }
四、switch語句
處理選擇結構有if語句和switch語句。switch語句用於處理多分支選擇結構,在使用時有多個注意點,這里強調兩點。
1.case後邊的常量,不能寫成表達式。
例如:編寫程序,評判學生成績score的等級grade,90~100為A,80~90為B,70~80為C,60~70為D,60以下為E。
『捌』 學習C語言應注意哪些方面其重點和難點是哪些
第一個難點 C語言的數據類型 關於C語言數據類型,不難理解但難於運用。這就要求同學們在學習的時候記住常用的一些數據類型的特徵(第一次作業第2題內容)。 第二個難點 C語言的運算符和運算順序 1.C語言的運算功能十分豐富,運算種類遠多於其它程序設計語言。大家在學習的時候不僅要注意某些運算符的運演算法則,還要注意運算規則(注意事項)。 2.當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。 第三個難點 C語言的三種簡單程序結構 其實,C語言的前二個程序結構不是難點,三種結構里難點應在於循環的嵌套用法。 (1)關於順序結構 這種結構的程序比較簡單,就是按照語句的排列順序依次執行的機制。順序結構的執行順序是自上而下,依次執行,因此編寫程序也必須遵守這一規定,否則你的程序執行結果就不對。 語句也是多分支選擇語句,又稱為多路開關語句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if—else 語句,它的所有分支都是並列的,程序執行時,由第一分支開始查找,如果相匹配,執行其後的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。 (3)關於循環結構: 循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do –while循環和for循環。 四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提昌用goto循環,所以下面我們重點講解另外的三種循環。 常用的三種循環結構學習的重點在於弄清它們相同與不同之處,以便在不同場合下使用,大家好好看一下書中三種循環的格式和執行順序,如何替換使用,如把while循環的例題,用for語句重新編寫一個程序,這樣能更好地理解它們的作用。 注意:在while和do—while循環體內和for 循環中的第3語句中,應包含趨於結束的語句(如i++,i--),否則就可能成了一個死循環,這也是初學者的一個常見錯誤。 下面我們來討論下這三種循環的異同之處: 用while和do—while循環時,循環變數的初始化的操作應在循環體之前,而for循環是在語句1中進行的;while 循環和for循環都是先判斷表達式,後執行循環體,而do—while循環是先執行循環體後判斷表達式,也就是說do—while的循環體最少被執行一次,而while 循環和for就不一定了。這三種循環都可以用break語句跳出循環,用continue語句結束本次循環,而goto語句與if構成的循環,不能用break和 continue語句進行控制。 這三種結構並不是彼此孤立的,在循環中可能出現分支、順序結構,分支中也可能出現循環、順序結構而把循環、分支看成一個語句,它又是構成順序結構的一個元素,因此這三種結構相互結合,就能實現各種演算法,設計出解題程序,但若是很大的題目,這樣編出的程序往往很長,重復結構多,並且可閱讀性差,因此我們常將C程序設計成模塊化結構。
『玖』 C語言的重點與難點
順序、循環、選擇三大結構是重點,數組指針文件是難點。學會設計演算法是重難點。指令的語法全憑記憶,不算難。文件是非重點,只會簡單考。數組指針是重要手段,必須掌握。多上機實驗,肯定沒問題。
『拾』 學習C語言應注意哪些方面其重點和難點是哪些
第一個難點 C語言的數據類型 關於C語言數據類型,不難理解但難於運用。這就要求同學們在學習的時候記住常用的一些數據類型的特徵(第一次作業第2題內容)。 第二個難點 C語言的運算符和運算順序 1.C語言的運算功能十分豐富,運算種類遠多於其它程序設計語言。大家在學習的時候不僅要注意某些運算符的運演算法則,還要注意運算規則(注意事項)。 2.當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。 第三個難點 C語言的三種簡單程序結構 其實,C語言的前二個程序結構不是難點,三種結構里難點應在於循環的嵌套用法。 (1)關於順序結構 這種結構的程序比較簡單,就是按照語句的排列順序依次執行的機制。順序結構的執行順序是自上而下,依次執行,因此編寫程序也必須遵守這一規定,否則你的程序執行結果就不對。 語句也是多分支選擇語句,又稱為多路開關語句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if—else 語句,它的所有分支都是並列的,程序執行時,由第一分支開始查找,如果相匹配,執行其後的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。 (3)關於循環結構: 循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do –while循環和for循環。 四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提昌用goto循環,所以下面我們重點講解另外的三種循環。 常用的三種循環結構學習的重點在於弄清它們相同與不同之處,以便在不同場合下使用,大家好好看一下書中三種循環的格式和執行順序,如何替換使用,如把while循環的例題,用for語句重新編寫一個程序,這樣能更好地理解它們的作用。 注意:在while和do—while循環體內和for 循環中的第3語句中,應包含趨於結束的語句(如i++,i--),否則就可能成了一個死循環,這也是初學者的一個常見錯誤。 下面我們來討論下這三種循環的異同之處: 用while和do—while循環時,循環變數的初始化的操作應在循環體之前,而for循環是在語句1中進行的;while 循環和for循環都是先判斷表達式,後執行循環體,而do—while循環是先執行循環體後判斷表達式,也就是說do—while的循環體最少被執行一次,而while 循環和for就不一定了。這三種循環都可以用break語句跳出循環,用continue語句結束本次循環,而goto語句與if構成的循環,不能用break和 continue語句進行控制。 這三種結構並不是彼此孤立的,在循環中可能出現分支、順序結構,分支中也可能出現循環、順序結構而把循環、分支看成一個語句,它又是構成順序結構的一個元素,因此這三種結構相互結合,就能實現各種演算法,設計出解題程序,但若是很大的題目,這樣編出的程序往往很長,重復結構多,並且可閱讀性差,因此我們常將C程序設計成模塊化結構。