1樓:匿名使用者
樓主的這段**屬於簡單的冒泡法排序問題,樓主可以找相關資料檢視,下面是我給樓主的一些簡單的解釋:
1.這裡的for語句是什麼意思呢?
答:此處的for語句主要用來像陣列a[i]中輸入元素的,作迴圈使用的。
2.3.對於樓主的i與j為什麼小於2,而不是3?
答:樓主可以想一下,如果是三個數的話,你需要比較幾次就可以比較出那個是最大的,很明顯,是2次(因為i是從0開始的,2次的話就是第0次,第1次,總共2次),這就是冒泡中的趟數,即如果是n個數的話,需要比較n-1趟了;
對於j,更簡單了,樓主可以想一下,如果有n個數,比較n-1次就可以找出最大的,那麼如果找第2大的數的話(就是第2趟),就是n-2次,第三的話,就是n-3次,以此類推,第i趟的話就是n-i次了,而你的每個迴圈都是從0開始的,所以是j<2。
4、此處的for和上面的for的作用相同,也是用來迴圈輸出的。
5.樓主可能對於&這個符號沒有理解,當時輸出的時候是不需要&符號的,只有是輸入的時候才需要,樓主切記,這是最簡單的了。
6. 陣列a[i],有a[0]=a,那麼a+2,可以理解為將指向陣列元素a[0]的指標像下移動兩個單位,那麼就是a[2],所以,a+2就是陣列中的元素a[2];
樓主的問題都很簡單,建議樓主看看課本,將的都很清楚,還有不懂的可以問我,
當然了希望樓主採納!
2樓:路圖元
陣列名沒有這樣用的!只有當乙個指標指向這個陣列首位址時,才那樣用。比如指標p = a;則p+2就代表a[2]~
3樓:糾結的氣功
第乙個用for語句迴圈3次scanf 掃瞄資料,每次掃瞄乙個。
至於為什麼是2,你自己看啊 後面寫了 a[j]與a[j+1]的比較了 如果j能到3
豈不是和a[3]與a[4]比較了!
最後這個for語句同第乙個,不加位址符是因為prinf這個函式的引數取的值不是位址
a+2代表a這個陣列的首位址+2的位址
4樓:匿名使用者
不知道,誰寫的這段程式,比較三個數的大小,首先確定輸入的是否是數字,通用ascii碼確認,然後將i,j,t分別給陣列的a1,a2,a3,我們要求a1最大,將a1與a2比,如大不操作,如小兩數交換,再將a1與a3比,如大不操作,如小兩數交換,再將a2與a3比,如大不操作,如小兩數交換,然後輸出,應該是兩個環境,乙個內乙個外。才學的先畫流程圖吧,把流程圖跑完了再寫程式
5樓:匿名使用者
lz的**有點錯誤,如果把a[j]--->a[i],那麼:
1.for語句是乙個迴圈,那兒的意思是i從0每次增加1直到2,然後輸入三個數分別賦給a0、a1、a2
2.那個巢狀迴圈其實就是a0和a1比較,a0和a2比較,a0和a3比較,然後又是a1和a2比較,a1和a3比較,所以i和j最多取到2
3.這個for和第乙個for差不多,只是第乙個是輸入,這個是輸出,輸出的時候不需要位址符&
c語言,新手提問!
c語言初學提問,
6樓:聽不清啊
源程式中有兩行錯了。排序時下標越界了。
#include"stdio.h"
main()
{ int i,j,a[9],b[9],c,d,n;
for(i=0; i<10; i++)
{ a[i]=i+1;
scanf("%d",&b[i]);
for(i=0; i<8; i++) //有改動for(j=1+i; j<9; j++) //有改動if(b[i]>b[j])
{ c=b[i];
b[i]=b[j];
b[j]=c;
d=a[i];
a[i]=a[j];
a[j]=d;
for(i=0; i<10; i++)
printf("%d ",b[i]);
printf("\n");
for(i=0; i<10; i++)
printf("%d ",a[i]);
7樓:夏天的小紅花
c語言中,每一種資料型別所佔的位元組數是由該軟體確定的。比如早期的原版本通常是採用16位。後來的c語言編譯器則採用32位。
目前多數的c語言編譯器採用的都是32位,就是說,每乙個int儲存的單元是四個位元組。具體來說就是16位的int可儲存的資料範圍是-32768~+32767,而32位的int可儲存的資料範圍為-2147483648~+2147483648
8樓:匿名使用者
c語言沒有規定比如 int的具體大小,
sizeof (int)返回的大小,
是由 編譯器 決定的。
c語言初學者的提問
9樓:手戈丁頁
1, 程式設計序一定要規範,最好合理安排空格和縮排,讓程式看起來更容易,小程式還可以,有幾頁紙你就知道天書是怎麼來的了。
2,主函式最好也有返回值型別,用int main() 然後返回 0 最好,void也可以,最好不要省略,這是習慣問題。
3,定義變數最好單個定義,自成語句,用c++編譯器時需要在定義,不要一開始全定義了。
4,做for(;;)中迴圈變數最好用size_t型別,c 中就用int ,用double會出錯。
5,定義陣列一般要初始化,未賦值的變數最好不要用。
6,修改後為:
#include "stdio.h"
int main()
7,最後不知道你想輸出什麼,輸出陣列變數名為 printf("a[%d][%d][%d]",d,b,c);
輸出陣列變數值為 printf("%f ",a[d][b][c]);
8,用c++編譯器時for語句可換為 for(int d=0; d<100; ++d) 前面定義的int d;省略,別的類似。
9,我學的c++ ,c 的知識也懂點,寫這些希望對你學習程式設計有用。
10樓:匿名使用者
double a[100][100][10],是個多麼大的東西。。。
恐怖!4 * 100 * 100 *10;
超出了棧的大小。。編譯器一般劃分棧都是1m左右的。你的太大了。
方在main()外邊會好點。因為記憶體比棧大很多
11樓:匿名使用者
說明你用的編譯器,預設的棧空間太小了,不足以存放8*100*100*10大約是800kb的資料.
使用動態陣列,或者如tyoukill所說把它放在函式外成為全域性變數,不放在棧空間中
12樓:匿名使用者
這個printf的表示奇怪
13樓:匿名使用者
恐怕不是太小,而是太大!
100*100*10*8=800000
800000位元組=781.25mb
14樓:匿名使用者
是不是字母打錯了??
c語言 新手提問
15樓:北風_那個吹
如果i不等於k 且i不等於j 且j不等於k即三者不同時相等,
然後則執行後面的語句。
不懂再問。
16樓:匿名使用者
!=是不等於
&&是邏輯與
意思是當i不等於j,j不等於k,k不等於i三個條件同時成立時
17樓:沐魂
就是說i,j,k三個的值都不相等
關於c語言的新手提問
18樓:萌娃娃
unsigned long是無符號的長整型資料 範圍是0到4294967295,不可以是負數的。你可以將unsigned long改成long就ok了
19樓:
是不是第二個引號的位置有些問題。似乎有些不正常
20樓:匿名使用者
unsigned long -a=1;
printf("the biggest integer:%ul\n",-a);
外貿新手提問很菜的問題,外貿新手提問一個很菜的問題
不同的公司,對於一票的理解可能不同。一般情況,一票可能指同一個發貨人,同一個收貨人,同一時間出貨,一張提單。這樣的話,是否有多個集裝箱櫃或者不滿一個櫃,都指一票。但是也有其他情況,如對於貨代和報關行,他們可能認為一票貨就是一個報關單的所有貨物。但這樣的認為並不會排除前面所說一般情況。你這裡的一票,應...
WOW新手提問,魔獸世界新手幾個問題
呵呵,我也是新手,不過剛剛好你的問題我知道一點,你跟團隊進副本打到的裝備你是不能自己拾取,不過你可以向你們團長需求的,但是這個這個需求的代價就是要付出dkp,而且都是由團長來分配的,我們團就是根據誰出的dkp高這個裝備就給誰。一 dkp積分系統由來。dkp,是dragon kill point 屠龍...
初玩DNF問題,DNF新手提問
qq會員可以得到乙個名為 紅色特權風暴 的稱號。php?actid 10022 dnf和冒險島有什麼相同的地方我不知道 沒有玩過冒險島 不好意思dnf和一款叫 鬼吹燈 的遊戲異曲同工 但是鬼吹燈做的非常垃圾。這是鬼吹燈官網的鏈結 你可以自己去看看。一 qq會員玩dnf有什麼優待沒?答 沒有。二 dn...