進來看看這段C語言程式哪錯了,C語言程式 進來看看

2022-11-29 03:16:10 字數 3560 閱讀 1086

1樓:匿名使用者

你的程式達不到你要求的目的,只是帶著陣列裡的元素跑了一圈而已,輸出結果應該和你輸入時的次序一樣。既然是從小到大排列,那肯定得有大小的比較,而在你的fun()函式裡只有數值的交換,而沒有大小的比較。建議修改你的fun()函式以實現你所說的排序功能。

2樓:淦海瑤

這個就是

t=fan(x);

這個函式沒有返回值,不用int型,直接用void型的就可以也不用t這個變數,哪一行直接寫f(x);就可以void fan(int *p)就可以

3樓:匿名使用者

fun函式沒有返回值,你可以用void,

main函式沒有必要定義t

還有,建議你的main函式定義一個返回值,可以是int ,也可以是void,如果是int,可以返回return 0;

4樓:匿名使用者

我看不到任何錯誤,雖然有很多不妥的地方,但是都稱不上「錯誤」。

特意嘗試了一下,執行結果一切正常。

說到不妥,幾乎每行都有不妥,幾乎。。。

5樓:手機使用者

樓主承德石油軟體的學生吧 哈哈

6樓:匿名使用者

fun()用void就可以了!

7樓:匿名使用者

我只看出,for(j=……)迴圈是把陣列的第一個元素,拿到最後一個去,但是for(i=……)這個迴圈,幹了什麼?什麼都沒做。就是一個空迴圈。

8樓:

fun函式中,外層的for迴圈需要加大括號~

9樓:匿名使用者

t=fun(x);

改為 fun(x);

c語言程式 進來看看

10樓:匿名使用者

1,if(i==j) sum+=a[i][j];

3,上面的程式有問題,輸入整型函式需要加上地址符;(scanf("%d",&a[i]);)

*(a+i)=*(a+j);*(a+j)=t;

11樓:匿名使用者

程式題下面程式可求出矩陣a的主對角線上的元素之和,請填空。

#include

void main( )

,sum=0,i,j;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if((i==j)||((i+j)==2)&&(i!=j)) sum=sum+a[i][j];

printf("sum=%d\n",sum);

}以每行4個資料的形式輸出a陣列

#define n 20

main()

printf("\n");

}以下程式將陣列a中的資料按逆序存放,請填空。

#define m 8

main()

for(i=0;i

printf("%3d",*(a+i));

c語言資料結構演算法和c++資料結構演算法有什麼區別嗎??進來看看。。 10

12樓:匿名使用者

你就直接學c++,也應該要把c語言搞清楚,c語言的**寫起來要比c++繁瑣一些,不過學習的時候也理解更深刻。

13樓:匿名使用者

不用換,演算法、資料結構是程式設計的

核心,無論什麼語言 所用到的演算法 資料結構是內

一樣的容 唯一的影響可能是書裡一些c語言的**你可能不太懂 會對你的學習有一定的影響, 不過影響不大 c++和c語言 大同小異,趁這個機會稍微接觸下c語言也沒壞處

14樓:匿名使用者

沒有什麼區別哈,只是不同語言來實現的哈,相對來說看c的資料結構還簡單回

一點,你答

不需要物件導向的思想,如果看c++的寫的資料結構的話,你還要封裝類,這樣多給資料結構加了一層東西,建議直接看c的好點。c++包含了c,一般你看c++的書,如果不是專門講資料結構的話,一般不會涉及資料結構,因為c++的stl裡提供了很多已經封裝好了的資料結構,如果你要了解這些封裝好了的原理的話,你必須對c寫的資料結構有比較好的理解才能看懂。

15樓:憤怒de翔小果

c++是c的延伸,一般最好先學c在學c++

至於兩者的區別,本質思想是完全一樣的,只是使用的語言不同而已,

因為你在學c++,看一下c,其實也是很好理解的,搞懂c的資料結構與演算法,c++的自然就明白了

16樓:匿名使用者

就資料結構和演算法本身而言,沒有區別,學了c++,但是不懂c**和語法,你是怎麼回做到的?答

如果你能把c的語法大概搞懂,這兩種書原理是一樣的。

當然c++裡面由於在c的基礎上擴充套件了新的東西,有如果概念不清楚,看c++的書理解起來更困難一點。

17樓:匿名使用者

直接下電子版的多好 。省錢 資源還多,還能一邊編一邊查書。

18樓:匿名使用者

資料結構是演算法思想描述,和具體語言無關。

19樓:匿名使用者

你是初學者,我建議你還是買本c++的

20樓:匿名使用者

沒區別,放心看吧,都能看懂,c語言更基礎

c語言編寫了一個** 結果卻不對請高手進來看看

21樓:我瀟灑我安逸

宣告變數時初始化試試

c語言有點難的程式設計題!!! 大俠們都進來看看吧

22樓:匿名使用者

#include

#include

#include

int index;

int num[10];

int find(int keynum);

int main()

;/* for(i=0;i<10;i++)scanf("%s",str[i]);*/srand(time(null));

while(index<10)

for(i=0;i<10;i++)

printf("%s\n",str[num[i]-1]);

printf("\n");

return 0;

}int find(int keynum)return 0;}

23樓:只想換個名字

用字元陣列讀十個名字,下標0~9,然後用隨機函式從0到9隨機取數作為下標,然後輸出下標對應名字,並標記用過的數字...

可以用一個0-9的陣列來標記,初始化所有元素為0(即沒用過),每隨機到一個數,判斷其是否用過,沒用過的話,就輸出對應名字,然後將該數標記為1(即用過)... ...

24樓:匿名使用者

你這是老師佈置的作業吧?

給你一個思路

一個迴圈輸入,一個迴圈輸出,就這麼簡單

c語言看程式寫結果,C語言高手來看看,看程式寫結果,告訴我步驟

這麼基本的問題。static int a表示這個a是一個靜態變數具有靜態儲存時期 內部連線 塊作用域,因此呢它和自動變數不同,每次函式結束自動變數會被刪除但是這個a不會,所以 n fun3 k 會改變一次a的值,使a等於5n fun3 m 接著上次的改變繼續改變a,所以這裡的a就成了6至於下面這題更...

c語言問題,幫我看看哪錯了

n 會被gets當作輸入結束符,但不會被gets接收,還有就是gets函式會在輸入字串後加上 0 以確定字串的結束位置,所以 include int main void i i 1 printf d n m return 0 你錯誤的原因是沒用清楚字串的結束符不是 n 而是 0 每一字串的尾部,會自...

c語言的這段程式C語言中這段程式是什麼意思?

printf函式需要包含的標頭檔案 include 程式的主函式入口 void main printf n for i 0 i 4 i 每當第一層迴圈執行完一次後就執行一次printf n 換行 printf n 最後的執行結果 關鍵點是迴圈巢狀 i 0時 j從0開始 每次執行迴圈體後j 1 迴圈1...