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...