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樓:匿名使用者 你這是老師佈置的作業吧? 給你一個思路 一個迴圈輸入,一個迴圈輸出,就這麼簡單 這麼基本的問題。static int a表示這個a是一個靜態變數具有靜態儲存時期 內部連線 塊作用域,因此呢它和自動變數不同,每次函式結束自動變數會被刪除但是這個a不會,所以 n fun3 k 會改變一次a的值,使a等於5n fun3 m 接著上次的改變繼續改變a,所以這裡的a就成了6至於下面這題更... n 會被gets當作輸入結束符,但不會被gets接收,還有就是gets函式會在輸入字串後加上 0 以確定字串的結束位置,所以 include int main void i i 1 printf d n m return 0 你錯誤的原因是沒用清楚字串的結束符不是 n 而是 0 每一字串的尾部,會自... printf函式需要包含的標頭檔案 include 程式的主函式入口 void main printf n for i 0 i 4 i 每當第一層迴圈執行完一次後就執行一次printf n 換行 printf n 最後的執行結果 關鍵點是迴圈巢狀 i 0時 j從0開始 每次執行迴圈體後j 1 迴圈1...c語言看程式寫結果,C語言高手來看看,看程式寫結果,告訴我步驟
c語言問題,幫我看看哪錯了
c語言的這段程式C語言中這段程式是什麼意思?