C語言請教大家順序查詢的問題,C語言 請教大家一個順序查詢的問題

2022-02-18 06:12:03 字數 3866 閱讀 6562

1樓:

除了以上兩位說的以外,你的迴圈還有問題

while(i < n && list[i] != key)

你的迴圈條件是list[i] != key,即當list[i] != key是執行迴圈既然list[i] !

= key了,又怎麼可能有if(key == list[j]) 對不?

你輸入的數本身就是n個,所以不存在i>n的條件,而且既然規定了總共就n個數所以也不用while迴圈,應該用for迴圈。

我改的正確程式如下:

#include

#define n 10

void sequence_search(int, int, int);

int main(void)

void sequence_search(int list[ ], int n, int key)

}if(found==0)printf("not found!\n");

} 已經經過除錯了!你可以再試試!

2樓:匿名使用者

void sequence_search(int list, int n, int key)

i++;

} if(found == 0)

printf("not found!");

} 另外,第3行的宣告void sequence_search(int, int, int);

應該是void sequence_search(int, int, int);

關於c語言順序查詢的問題

3樓:匿名使用者

#include

int serchsequential(int st, int n, int k)

int main()

;int k, te;

scanf("%d", &k);

te = serchsequential(a, 10, k);

if (te == 0)

printf("沒有此資料\n");

else

printf("%d", te);

return 0;}

c語言程式設計問題(按順序查詢) 初學 10

4樓:匿名使用者

#include

#define n 10

int sequential_search(int a, int n, int x)

void main() ;

printf("x = ");

scanf("%d",&x);

index = sequential_search(a,n,x);

if(index) printf("the position is: %d\n",index);

else printf("not find : %d\n",x);}

5樓:

修改函式為:

int sequential_search(int a[ ], int n, int x)

{int  i;

//int *p,*t;

//t=p;這裡用了指標,不需要啊!

for(i=0; i

6樓:匿名使用者

int sequential_search(int a[ ], int n, int x)

一個簡單c語言順序查詢程式,高手幫忙看下!

7樓:匿名使用者

int *creatarray()while(num[n] != -1);

return num;

}int *num 這個只是定義了一個物件,但是沒有為num在記憶體中開闢空間,值就賦不進去。

2.還有一個地方寫錯了

int ordersearch(int *num,int aim)if(i == countnum(num) - 1)return i;

}這個是改過的,你看下。

c語言順序查詢程式

8樓:樂跑小子

#include

void main()

;int i,x,y;

printf("輸入你要查詢的數:\n");

scanf("%d",&x);

y=0; //標記是否已找到,y=1表是找到了,y=0表示沒找到

for(i=0;i<10;i++) //迴圈,把x和陣列中的元素一個個比較

}if(y==0)printf("無法找到你要查詢的數\n"); //y=0表示找不到}

9樓:13孤島

陣列查詢:int i=0;

char a[10]=;

for(;i<10;i++)

連表查詢:

10樓:匿名使用者

#include

#include

typedef struct

student;

int main()

if(i==10)

st.studentid[a]='\0';

b++;

for(a=0;b<

st.name[a]='\0';

b++;

for(a=0;b<

st.major[a]='\0';

b++;

for(a=0;b<

st.grade[a]='\0';

printf("studentid is:%s\n",st.studentid);

printf("student's name is:%s\n",st.name);

printf("student's major is:%s\n",st.major);

printf("student's grade is:%s\n",st.grade);

break;}}

}fclose(stdinf);

return 0;}

順序查詢中的幾個問題

11樓:匿名使用者

第一個問題,elem是指標,利用指標可以開闢一個陣列空間,本題就是這樣,然後指標就可以像陣列一樣通過下表訪問指定位置的元素了。

第二個問題,st.elem[i].key 中的 key 是關鍵字的意思,進行順序查詢一般都是對關鍵字 key 進行查詢。

第三個問題,所謂哨兵,就是使程式能夠少寫一些 if 語句,一個 for 迴圈搞定。

12樓:

**需要通過編譯的話,傳進search_seq函式的st引數必須滿足elem指標指向一塊分配好的記憶體空間,這一塊記憶體空間可以是通過陣列宣告得到,也可以通過calloc或者malloc函式分配空間得到,這樣就可以以陣列形式來進行使用。

如果只是宣告一個指標並傳進去,那樣會報錯的key成員的問題,應該是指結構體elemtype中存在一個叫key的成員,參考如下:

typedef struct elemtype;

哨兵的話,指的是for迴圈裡面的那個i

13樓:匿名使用者

一個陣列的陣列名就相當於一個陣列的指標,所以指標也可向陣列訪問元素一樣訪問其空間內的成員;st.elem[i].key的意思是 elem是st結構體中的成員,同時elem也是個結構體,他的成員是key;哨兵用於免去查詢時每一步都需要檢查是否遍歷完畢的操作

C語言問題請教

選c 不知道對不對 呵呵 func2 int i 是函式呼叫 char st hello,friend 是字元陣列這個很難解釋 教材上有的 選c程式首先呼叫func1 i 輸出st 0 即h,然後判斷 i 0 3,執行i 2 i變成2,呼叫func2 i 輸出st 0 即l,然後判斷 i 2 3,執...

請教c語言輸入問題,請教一個c語言輸入問題

因為你向a輸入一個字元後 scanf c a 就是這個句子 要按一下回車,而回車也是字元,於是第二句 gets b 就把回車給吃進去了 也就是你說的 0 然後程式就執行到gets c 這一句了。記著,回車也是字元就是了。ps c語言很萌的。gets 從標準輸入流中讀取字串,直至接受到換行符或eof時...

C語言的問題C語言問題C語言問題

若有說明語句double p,a 則能通過scanf語句正確給輸入項讀入資料的程式段是 解 p a 將a的地址賦值給p,scanf lf p 從鍵盤獲取一個數值賦值給地址p指向的變數 所以選d 有函式fun的定義形式如下。int fun float f 則以下對函式fun的呼叫語句中,不正確的是 a...