-
三目運(yùn)算符
類似于if吧
查看全部 -
Hallo World查看全部
-
第23行:if括號內(nèi)(!=1)的判斷是為了避免正對角線與反對角線相交的元素重復(fù)計(jì)算
查看全部 -
第3行:void say(char string[])? //整個數(shù)組做為函數(shù)參數(shù)
第5行:printf("%s\n",string);? ? ?//打印字符串
say(string);? ?//調(diào)用say函數(shù)輸出字符串
注意區(qū)別
查看全部 -
第12行使用break的原因:需要用break語句中斷后跳出for循環(huán),否則,仍然會繼續(xù)比較下去,后面程序語句會對index賦值-1;這個代碼必須有break。在沒有break的情況下,循環(huán)的時候假如說在第三個arr[i]=value,然后index=i,這個時候i=3,index也就是3,接著下一個循環(huán)i=4的時候,arr[4]不等于value,進(jìn)入else,index又變成了-1,直到i=5,循環(huán)結(jié)束,返回-1.所以說break這個作用是當(dāng)arr[i]等于value時,讓index=i,接著跳出循環(huán),返回index,得到正確結(jié)果。
考慮情況更加完整的代碼;
//教程里的解決方案不夠完整,當(dāng)數(shù)組中與value的值相等的元素存在多個時,程序總是會輸出其中的第一個元素的下標(biāo),其后仍有與value相同的值則直接跳過,不會輸出。 #include?<stdio.h> int?getIndex(int?arr[5],int?value) { ????int?i; ????int?temp=0;??????//用來承載第二個for循環(huán)中arr[i]?!=?value的判斷次數(shù)。 ????for(i=0;i<5;i++) ????{ ????????if(arr[i]==value) ????????{ ????????????printf("存在,下標(biāo)為"); ????????????break;??????//當(dāng)arr[i]?==?value的結(jié)果時,證明value的值能在arr數(shù)組中找到,立即退出循環(huán)。 ????????} ????} ????for(i=0;i<5;i++) ????{ ????????if(arr[i]==value) ????????{ ????????????printf("?···?%d",i);??????//輸出當(dāng)arr[i]?==?value時i的數(shù)字。即arr數(shù)組中的某個元素等于value時,該元素的下標(biāo)。(這個循環(huán)與上面的for循環(huán)分開的原因:為了可以輸出多個符合要求的下標(biāo)) ????????} ????????else ????????{ ????????????temp++;??????//累加arr[i]?!=?value的判斷次數(shù)。當(dāng)temp==arr數(shù)組的總長度時,代表arr數(shù)組中沒有一個元素==value,即value在arr數(shù)組中不存在。 ????????} ????} ????if(temp==5) ????{ ????????printf("不存在。\n"); ????} ????else ????{ ????????printf("。"); ????} } int?main() { ????int?arr[5]={3,12,9,8,6};??????//可更改此數(shù)組的元素,觀察運(yùn)行結(jié)果有沒有錯誤,即使相同的元素也能正確輸出結(jié)果。 ????int?value=8;??????????????????//可更改此數(shù)組的元素,觀察運(yùn)行結(jié)果有沒有錯誤。 ????printf("%d在數(shù)組中",value);//沒有”\n“與”getIndex“函數(shù)中的輸出語句可以打印在同一行,形成一句話的效果。(”getIndex“函數(shù)中的輸出語句中無“\n”原因同理。 ????getIndex(arr,value);??????//傳遞arr[]以及value的參數(shù)。 ????return?0;???? }
查看全部 -
細(xì)節(jié)注意:1.相鄰前后兩數(shù)兩兩比較:若元素個數(shù)為n,則最大的下標(biāo)為n-1;因?yàn)槭?strong>相鄰每兩個數(shù)依次比較(兩個數(shù)為一組),所以比較涉及的循環(huán)(14到26行)中的外層循環(huán)(14行)的索引(下標(biāo)j)從n-2開始;2.要設(shè)置兩層循環(huán),原因:例如數(shù)組中最大的數(shù)是第一個數(shù),第二大的數(shù)是第二個數(shù),僅一次內(nèi)循環(huán)只能將第一個數(shù)(最大的數(shù))放在最后面,無法使第二個數(shù)(第二大的數(shù))放在倒數(shù)第二個數(shù)的位置。所以要有兩層循環(huán)。
學(xué)習(xí)(7到13行)輸出如題改格式的方法。
查看全部 -
設(shè)置index(即第十二行代碼)的作用是記錄arr1中較(最)大元素的索引
記住9到14行比較(出)并記錄數(shù)組中最大元素的方法;
第23行和第2行傳入整個數(shù)組(arr1)無“[ ]”;
查看全部 -
C語言的數(shù)組長度一經(jīng)聲明,長度就是固定,無法改變;
最好避免出現(xiàn)數(shù)組越界訪問,循環(huán)變量不要超出數(shù)組的長度;
由于C語言是沒有檢查數(shù)組長度改變或者數(shù)組越界的這個機(jī)制,可能會在編輯器中編譯并通過,但是結(jié)果就不能肯定了,因此還是不要越界或者改變數(shù)組的長度。
查看全部 -
初始化數(shù)組時,數(shù)組內(nèi)元素的個數(shù)小于等于(不能大于)聲明的數(shù)組長度(否則越界);
在聲明數(shù)組后沒有進(jìn)行初始化的時候,靜態(tài)(static)和外部(extern)類型的數(shù)組元素初始化元素為0,自動(auto)類型的數(shù)組的元素初始化值不確定。
查看全部 -
為什么要刪去第二行:將hello.c中的#include "test.c",這一行刪去,在函數(shù)printLine之前加上extern(事實(shí)上可省略)使其成為外部函數(shù),使其能被test.c調(diào)用從而在test.c中完成函數(shù)say,函數(shù)say默認(rèn)為外部函數(shù),能被(刪去#include "test.c"的)hello.c調(diào)用,從而完成。(hello.c是我們現(xiàn)在正在完成(作業(yè))的函數(shù))
查看全部 -
用auto定義的變量為自動變量(動態(tài)存儲類別:是指在程序運(yùn)行期間根據(jù)需要進(jìn)行動態(tài)的分配存儲空間的方式。動態(tài)存儲區(qū)中存放的變量是根據(jù)程序運(yùn)行的需要而建立和釋放的);
用static修飾的為靜態(tài)變量(靜態(tài)存儲類別),注:靜態(tài)局部變量只賦初值一次,如果在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量);
registe:將局部變量得值放在CPU中的寄存器中,叫做“寄存器變量”。局部靜態(tài)變量不能定義為寄存器變量;
用extern聲明的的變量是外部變量,外部變量的意義是某函數(shù)可以調(diào)用在該函數(shù)之后定義的變量。
查看全部 -
int x=77;? 標(biāo)為x(1),它是整個程序的變量,(整個程序的)全局變量
int x=10;? 標(biāo)為x(2),這是函數(shù)main() 中的全局變量,也是整個程序的局部變量
int x=100; 標(biāo)為x(3),這是if語句中的全局變量,這也是整個程序的局部變量,但級別比x(2) 還低,被引用的范圍更小。若寫成 x=100;這就是給x(2)進(jìn)行賦值,也就是說x(2)的值被改成100了,main()函數(shù)中使用x的位置,其值都是100
在main()函數(shù)中,運(yùn)行到
fn1();
時,程序暫時跳出main()函數(shù),去執(zhí)行自定義函數(shù)fn1(),此時已經(jīng)跳出了main()函數(shù)的范圍,故x為x(1)的內(nèi)容。
整個完整的程序中,雖然定義的變量都名為x,但對于計(jì)算機(jī)而言,是三個不同的變量,并且使用的范圍也是不一樣的。
int? ?是告訴計(jì)算機(jī)定義新變量的標(biāo)識,同時確定數(shù)據(jù)類型,類似的還有char,short,long,float,double等。
查看全部 -
這里都改變了a的值
查看全部 -
強(qiáng)制類型轉(zhuǎn)換是通過定義類型轉(zhuǎn)換運(yùn)算來實(shí)現(xiàn)的。其一般形式為:
?(數(shù)據(jù)類型) (表達(dá)式)?
其作用是把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說明符所表示的類型,例如:
查看全部 -
輸出語句的
查看全部
舉報(bào)