2
我寫在ANSI C代碼,這個代碼必須完成一個單一的,簡單的任務:排序陣列將無法工作在ANSI C
- 排序數組
- 在一個陣列搜索如果發現一個元素
- 回報元素位置
- 否則返回-1
我定義我的功能是這樣的:
int search_sorted(int *array, int dimensione, int elemento) {
int i;
for(i=0;i<dimensione;i++){
//fill the array with random numbers
*(array+i)=((int)(rand()%RANDOM_MAX));
}
sort(array,dimensione);
//this should actually sort the array?
for(i=0;i<dimensione;i++){
printf(" posizione %d\t -\t %d\n",i+1,array[i]);
//print the array...
}
for(i=0;i<dimensione;i++){
if(elemento>array[i]){
return -1;
} else if(array[i] == elemento) {
return ++i;
}
}
return -1;
}
//sorting function
int sort (int *array,int dim){
int i, temp;
for (i=0;i<(dim-1);i++){
if(array[i]>array[i+1]){
temp=array[i+1];
array[i+1]=array[i];
array[i]=temp;
}
}
}
的問題是,排序根本不適用,我沒有看到一個原因,它不會......我100%肯定,我傳遞正確的元素(沒有編譯錯誤,也沒有任何...)
任何想法爲什麼它不工作,以及如何解決這個問題?
爲什麼選擇投票? – asheeshr
好吧,我泡泡排序,並提出了一些真正有用的東西,我不知道這樣的東西已經存在,但我不明白爲什麼我的不適用(我的意思是,我明白我缺乏很多迭代,但我的甚至不會交換一個單元格...) –
我沒有downvote,但你的答案最初只是無用的「你的實現是不正確的」在你編輯它之前,所以我並不感到驚訝被降低了。 – interjay