1樓:匿名使用者
#include
void main()
正確寫法:#include
void main()
#include
void sum(char array,int size )void main()
正確原因:這裡的char array是形參,sum(a, 10)中,引數的賦值過程是這樣的:array = b, size = 10
如果你能明白第一個程式的錯誤原因的話,那這一條的正確原因你也就心知肚明瞭。
2樓:匿名使用者
引數寫char array 實際上是char *array。和變數寫char b是不同的。變數寫char b是長度待定的陣列,需要通過初始化確定長度。
用來初始化的必須是字串常量或者{}初始化常量。
3樓:匿名使用者
為字元陣列附值需要雙引號,所以b=a"
第二個是把陣列a作為實參傳遞到形參當中去,傳遞的是陣列名a,也是地址,但當用sum函式呼叫它的時候還是取得是裡面a陣列裡面的數值,及傳值呼叫。
4樓:匿名使用者
我知道你家的地址以後,敲門進去,看見家裡是你。
我知道你家的地址以後,敲門進去,看見家裡是你。
關於c語言陣列的一些疑惑?
5樓:匿名使用者
書上說的沒錯,你可能把array[10]理解成一個陣列元素了吧,其實它只是把一個包含有10個元素的陣列作為引數,而不是一個陣列元素,明白了嗎?
6樓:格里程式設計辦公技巧
左邊書上說的是陣列的元素不能作為形參,不能理解為陣列不能作為形參。
實際上這書它說的太繞了,不易理解。
只要記住陣列作為函式引數可以由下面幾種方式:
1. type fun(type arr,int size);
fun(type *arr, int size);
fun(type arr[常數], int size);
其中1/2種方式是最常用的,第三種不常用,一般不會寫常數因為寫了編譯器也不關心。另外一個問題也是你問的吧具體可以看看那個說明。
7樓:匿名使用者
陣列元素不能作為形參, 但是陣列能啊, 例子中形參是一個陣列。
c語言陣列問題
8樓:毓良剛棋
//printf貌似錯了,兩邊需要雙引號。是轉移字元,表示換行了。
這個程式就是讓你輸入一個包含5個整形資料的陣列,再把他們輸出。
請輸入和請輸出。
是程式制定讓它輸出出來的中文說明,不是指輸出這兩句話就可以讓你有輸入和輸出的操作,輸入和輸出是由scanf和printf來實現的。
兩個for迴圈的作用在程式裡說清楚了。
執行的結果只有一個,就是下面那一行。上面那行是你除錯的時候輸入進去的,不是輸出。
9樓:賓松蘭黎羅
好像不會輸出。
22」吧。就是讀入5個數。
再輸出意思(1)main程式入口(2)設定x為0-5的整形陣列整形變數k
4)一次讀入5個數(6)輸出5個數。
for是用於給陣列賦值。
scanf是讀入資料。
執行結果是一個。
因為第一行本來是你輸入的。
10樓:宋愛景介環
作用:輸入一個陣列,然後再把這個陣列輸出;
但我不知道為什麼最後一個是-22
2 1定義一個整形陣列x[5],和k
輸入資料。輸出資料。
3你第二個寫錯了,應該是。
輸出資料為。
而請輸入資料是隨即打5個。
4for語句是迴圈結構。
scanf起到將資料傳送給計算機,你的程式有很多錯誤,我修改了並執行,下面是正確的。
#include
voidmain()
11樓:長士恩竇羅
向整形陣列輸入5個數字,然後在輸出,不過這裡要改下for(k=0;k<5;k++)
不然你就出錯了像你上面的-22
printf
請輸入資料:")
for(k=0;k<5;k++)
scanf"%d",&x[k]);這裡是迴圈形式向陣列輸入各個資料,scanf()是輸入函式,每一步的意思程式說的很清楚了,建議你看看數,這太基礎了,都不好解釋了:)
c++陣列問題
12樓:匿名使用者
sizeof是求所佔大小。onearray代表陣列名,也就是代表整個陣列。於是sizeof(onearray) 就是整個陣列所佔空間的大小。
同理,sizeof(onearray[0])表示下標為0的元素所佔空間大小。你的元素型別相同,所以每個大小都是sizeof(onearray[0])。
整個大小除以每個大小,就是個數。
比如整個陣列佔30位元組,每個元素3個位元組,故有十個元素。
13樓:暢景彰
sizeof()這個函式的功能是求括號裡面資料佔用記憶體的大小。
sizeof(onearray)是求整個陣列中所有的元素總共佔用記憶體的大小,而sizeof(onearray[0])是求出這個陣列中,單個元素佔用的記憶體大小,所以相除的話就是你這個陣列有多少個元素了。
14樓:匿名使用者
一列n個相同的箱子,求n
n=箱子總長 / 單個箱子長度。
如此汝可明白?
c語言陣列問題
15樓:也許_沒有_也許
本題巧妙運用陣列c中的元素來統計陣列s中1234這4個數字出現的次數。
程式執行完後,最終結果是4332,表示1出現了4次,2和3各出現了3次,4出現了2次。
for(i=0;i<12;i++)
c[s[i]]+
當i=0時,s[i]相當於s[0],取數字其實是1,相當於c[1]++這樣c陣列中的第一個元素就自然從0變為1
同理,當i=2時,s[2]的內容是2,相當於c[2]++這樣c陣列中的第二個元素就自然從0變為1,這時統計1和2兩個數字各出現過1次了。
以此類推,i=3和i=4的時候,c[4]++已經執行過2次,表示數字4已出現過2次。
再往下推下去,思路已經很明瞭,後面的**也沒太大難度。
本題的關鍵在於c[s[i]]+這行**,你順到我說的思路,根據迴圈變數的增值,把數字都代進去,自然就會看明白。
c[5]=是把c陣列中所有的元素清0
16樓:匿名使用者
main()
c[5]=,i;
for(i=0;i<12;i++)c[s[i]]+c[s[i]]就是先算s[i]的值,比如第一個i=0時,s[i]=1 再求c[1]=c[1]+1的值。
for(i=1;i<5;i++)其實c[0]=0printf("%d",c[i]);
printf(""
c++字元陣列的問題
17樓:匿名使用者
1. c++中,存放字元的陣列可以分為字元陣列與字串陣列。字元陣列是指該陣列中存放了字元,如:
char ch[4]=;該定義中ch為字元陣列,該陣列包含4個元素,但不含字串結束符'\0',無法構成字串,只能使用for輸出。字串陣列就是陣列中包含了字串結束符'\0',該陣列就可以作為字串整體操作,如定義char ch[20]=;或者char ch[20]="abcd"; ch[4]的值為'\0',此時將ch作為字串的首地址,cin自動識別為字串,cin>>ch;就一次性輸出ch陣列中的字元,直到碰到字串結束為止,而不用使用for輸出了。當然,你一定要用for也可以實現,此時將字串陣列當成字元陣列看待,遂個輸出陣列元素。
2. p為可以指向字串的指標變數,"hello"作為字串常量,在程式設計時,常量也是有記憶體空間存放的,只是其存放的地址我們不知道,但系統知道,所以,char *p=「hello",這個操作就是系統將字串常量「hello"的首地址賦給p指標變數,則p相當於一個具有可變地址空間的字串陣列,而問題1中的ch相當於一個具有常量地址空間的字串陣列。
18樓:網友
ch與*ch 在賦值時是一樣的。
差別就是:char *s中的s所指向的內容是常量,不允許修改char s中的s是可以修改的。
輸出p,是輸出指標指向的字串,而儲存的是這個字串的地址。
19樓:匿名使用者
輸入可以用\0 或者用while()
輸出可以用指標連續輸出,或者還是while你要是想輸出地址就 &p 而不是單純的p,&為取地址的意思樓下的錯了 是&p 而不是*p=&(
20樓:匿名使用者
c++是高階語言,cin標準輸入流,它會自動處理你的輸入流,為什麼要用for,高階語言就是高階在這裡,更加智慧,而且如果每次你都用for不覺得很累嗎,這樣一個重複的過程並且常用的過程被語言設計者簡化到cin,方便程式設計師。
char *p=「hello「 典型的c風格字串定義方式,如果你用cout《如果想輸出p存放的地址就用cout<<(void*)p;,只輸出第一個位元組就用cout<<*p;
21樓:匿名使用者
20是字串長度的定義,當然輸入一個字串直接輸入輸出就行了。可能輸入有誤在看看。
22樓:飛苓青蘭
經典解釋int
chara[12][10],二維陣列。
有12個行陣列,一個內花括號代表一個行陣列,行陣列以a[0],a[1],a[2]…做陣列名,每個行陣列有個10元素,例a[i][j]:a[i]是行陣列名,a[j]是行陣列中的元素a[j]
23樓:自由翱翔海闊天空
不需要迴圈是因為函式把字串按地址開始一直輸出/輸入,直到遇到\0結束符;
24樓:醬流一
這是非常基礎的問題,要處理字串時,我們是用字串首地址當成整個字串,例如。
cout< 求c語言陣列問題
5 c語言陣列問題? 25樓:岔路程式緣 你說的二維陣列,要用weekday[i][j]來表示sunday、monday……到saturday之間的每一天的星期名稱。 因為在c語言中,變數沒有字串型別,想存放一個字串,就要用到一維字元陣列。所以,有時候也把一維字元陣列變數看成「字串變數」。如宣告char a[10];,則程式中可以用a(不帶後面的中括號)指代a[10]中存放的全體字元,就是把a當成字串了。 二維字元陣列,可以理解為一維字串陣列。如char b[i][j];,則b[i]可以代表每一個字串了。 回到原題,這裡可以用weekday[i]來代表星期的每一個名字,如weekday[0]=「sunday」,等等。 26樓:高數線代程式設計狂 你這麼看,這個二維陣列,第一維表示行號,第二維表示列號。如果直接兩維都指定取得是一個字元。只指定第一維,就是取第一行所有字元。 而每行實際存的就是星期一,星期二,這些字串。此程式也就是要輸出這些字串。 用一個簡單的例子試試.不知道對不對.還望高手指點struct stu boy 2 mian int i for i 0 i 2 i print n d stu.boy i num struct aa std 3 輸出for i 0 i 3 i 輸出模式基本上就這樣 typedef stuctstu ... include include define n 10 定義陣列大小 int main void printf 最高分 2f t最低分 2f n及格人數 return 0 void bubble float score,int n c語言陣列問題求解,一個陣列後面加加是什麼意思,是計數嗎,為什麼括號... 這裡沒有重定義,第一個for裡是先給i賦初值2然後進行迴圈,到第二個for的時候i的值又被重新賦了初值為1,這裡的i已經與之前的i值沒有關係了.所以不是重定義 你應該先去看下重定義的概念是什麼,要不你還是會弄不明白的 重定義 是指之前已經定義了一個變數,然後在這個變數的作用域內,又定義了一次同名變數...關於C語言陣列的建立,C語言如何建立陣列
c語言一維陣列的問題,求解啊,C語言一維陣列的問題,求解啊
請教C語言陣列的問題,請教一個C語言陣列的問題