Xin hướng dẫn về cách tìm kiếm phần tử trong mảng

	#include<stdio.h>
	#include<stdlib.h>
	#define MAXN 100
	
	int menu()
	{	printf("\nOne-Dimensional Array of Integers.");
		printf("\n1-Add a value.");
		printf("\n2-Search a value.");
		printf("\n3-Print out the array.");
		printf("\n4-Print out the array in a range.");
		printf("\n5-Print out the array in ascending order.");
		printf("\nOthers-Quit.");
		printf("\nSelect:");
	int choice;
	scanf("%d",&choice);
	return choice;
	}
	int add(int value, int*a, int n)
	{	a[n]=value;
    	n++;
    	return n;
	}
	int search(int value, int*a, int n)
	{	int i;
		for (i=0; i<n; i++)
  	  	{
			if (a[i]==value)
	     		return 1;
		}
	
	return 0;
	}
	void print(int*a, int n)
	{ 	int i;
		for (i=0; i<n; i++)
		 {
	 	
	    	 printf("a[%d]=%d\n", i,a[i]);
		}
	}
	void range(int*a, int n) 
	{	int minVal, maxVal, i;
		printf("Enter 2 values: ");
		scanf("%d%d", &minVal, &maxVal);
		for (i=0;i<n;i++){
			if (a[i]>=minVal && a[i]<=maxVal){
				printf("%d ", a[i]);
		}
	}
}
	void printAsc(int*a, int n)
	{	int i,j;
		for (i=0;i<n-1; i++)
			for (j=n-1;j>i;j--)
				{
				if (a[j]<a[j-1])
				{int t=a[j];
				 a[j]=a[j-1];
				 a[j-1]=t;
				}
				}
		print(a,n);
}
	int main () {
 		int a[MAXN];
		int n=0, pos, i;
		int value;
		int userChoice;
		do{
			userChoice=menu();
			switch(userChoice)
			{	case 1:
					{	printf("Input a value: ");
						scanf("%d", &value);
						n=add(value, a,n);
						printf("***Added***\n");
					}
					break;
				case 2:
					{	printf("Input the search value: ");
						scanf("%d", &value);
						int pos= search(value, a, n);
						if (pos!=a[i]){
						printf("***Not found***\n");}
						else printf("***Position is found: %d***\n", pos);
					}
					break;
				case 3:
					print(a,n);
					break;
				case 4: 
					range(a,n);
					break;
				case 5:
					printAsc(a,n);
					break;
				default: 
					printf("\n==============\n***Goodbye.***");	
		}
	}   	
	while (userChoice>0 && userChoice<6);
    getchar();
    return 0;
}

Đây là bài của em làm, nhưng phần tìm kiếm phần tử trong mảng em không biết phải làm thế nào ạ. Mong mọi người chỉ bảo.

Trả về 0 khi không tìm thấy, 1 khi tìm thấy. Bạn còn so sánh với a[i] làm gì nữa vậy?

3 Likes

phải làm thế nào để hoàn thiện/ sửa chữa vậy bạn?

Vứt cái !=a[i] đi.
Mình tự hỏi bạn có hiểu những gì bạn làm không?

3 Likes

thì mình chỉ mới học devC chưa đầy 1 tháng nên nhiều thứ mình vẫn chưa nắm rỏ, chổ đó bỏ !=a[i] thì thay vào cái gì bạn?

Ơ, thì cứ bỏ đi, mình có kiêu thay cái gì đâu. Mà hàm search() làm ngon lành vậy mà không biết dùng là sao?

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?