By GokiSoft.com| 20:11 20/09/2023|
Lập Trình C

Bài tập tổng quát - quản lý mảng số nguyên - Lập trình C BT2142

Trong hàm main khai báo các biến sau.

- Mảng số nguyên dataList có số phần tử tối đa là 100 phần tử

Yêu cầu thiết kế menu chương trình sau

1. Nhập vào số nguyên x => thêm vào mảng dataList

2. Sắp xếp theo thứ tự tăng dần 

3. Tìm kiếm phần tử trong mảng

4. Xoá phần tử trong mảng

5. Hiển thị 

6. Thoát

- Khi người dùng chọn 1: hỏi người dùng nhập vào biến x => thêm vào mảng dataList

- Khi người dùng chọn 2: Sắp xếp mảng dataList theo thứ tự tăng dần và hiển thị ra màn hình

- Khi người dùng chọn 3: Hỏi người dùng nhập số cần tìm => hiển thị ra số phần tử tìm đc trong mảng dataList có giá trị bằng giá trị vừa nhập vào

- Khi người dùng chọn 4: Hỏi người dùng nhập vào số cần xoá => Yêu cầu xoá tất cả các giá trị có giá trị bằng vs biến vừa nhập vào.

- Khi người dùng chọn 5: Hiển thị danh sách các phần tử

- Khi người dùng chọn 6: Thoát

Liên kết rút gọn:

https://gokisoft.com/2142

Bình luận

avatar
Nguyễn Hải Long [community,C2110I]
2021-12-01 07:18:47



#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int datalist[100];
	int n=0;
	int select;
	printf("\n Chon ");
	int i,j,t;

	do{
	printf("\n1.Nhap vao so nguyen x");
	printf("\n2.Sap xep theo thu tu tang dan");
	printf("\n3.Tim kiem phan tu trong mang");
	printf("\n4.Xoa phan tu trong mang");
	printf("\n5.Hien thi");
	printf("\n6.Thoat \n");
	


	
	scanf("%d",&select);
	
	switch(select){
		case 1:{
			printf("\nNhap vao so nguyen x =");
			scanf("%d", &datalist[n++]);
			break;
		}
		case 2:{
			for( i=0;i<n;i++){	
				for( j=i;j<n;j++){
					if(datalist[i]>datalist[j]){
						t=datalist[i];
						datalist[i]= datalist[j];
						datalist[j]=t;
						
						}
					}
				}
				printf("\nThu tu tang dan cua cac phan tu trong mang :");
				for(i=0;i<n;i++)
					printf("%d ",datalist[i]);
					printf("\n");
			break;
		}
		case 3:{printf("\nNhap phan tu can tim:");
			scanf("%d",&t);
			int cout=0;
			for(i=0;i<n;i++){
			
			if(t==datalist[i])	
			cout++;}
			printf("%d", cout);
		
			
			break;
		}
		case 4:{printf("\nNhap phan tu can xoa:");
			scanf("%d",&t);
			int cout=0;
			for(i=0;i<n;i++){
			
			if(t==datalist[i]){
				datalist[i]=9999999;	
				cout++;}}
		
				
			printf("%d", cout);
			for( i=0;i<n;i++){	
				for( j=i;j<n;j++){
					if(datalist[i]>datalist[j]){
						t=datalist[i];
						datalist[i]= datalist[j];
						datalist[j]=t;
					}}}
					n=n-cout;
			break;
		}
		case 5:{
				for(i=0;i<n;i++)
				printf("%d ",datalist[i]);
				printf("\n");
			break;
		}
		case 6:{ return;
			break;
		}
	}
		
	}while(n!=6);
	
	
	
	

	
	return 0;
}


avatar
TRẦN VĂN ĐIỆP [Teacher]
2020-12-21 01:50:18



#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void showMenu();
void find(int dataList[100], int currentIndex);

int main(int argc, char *argv[]) {
	int dataList[100];
	int currentIndex = -1;
	int choose, i, j;
	int tmpList[100];
	int tmpIndex = -1;
	int del;
	
	do {
		showMenu();
		scanf("%d", &choose);
		
		switch(choose) {
			case 1:
				currentIndex++;//length: currentIndex + 1
				printf("\nNhap phan tu thu %d: ", currentIndex);
				scanf("%d", &dataList[currentIndex]);
				break;
			case 2:
				//dataList: 5, 2, 7, 1, 9 => sap xep tang dan
				
				for(i=0;i<currentIndex;i++) {
					for(j=i+1;j<=currentIndex;j++) {
						if(dataList[i] > dataList[j]) {
							//swap => doi cho 2 phan tu
							int tmp = dataList[i];
							dataList[i] = dataList[j];
							dataList[j] = tmp;
						}
					}
				}
				break;
			case 3:
				find(dataList, currentIndex);
				break;
			case 4:
				tmpIndex = -1;
				printf("\nNhap phan tu can xoa: ");
				scanf("%d", &del);
				
				for(i=0;i<=currentIndex;i++) {
					if(dataList[i] != del) {
						tmpList[++tmpIndex] = dataList[i];
					}
				}
				//tmpList => chua danh sach cac phan tu con lai cua mang.
				currentIndex = tmpIndex;
				for(i=0;i<=currentIndex;i++) {
					dataList[i] = tmpList[i];
				}
				
				break;
			case 5:
				printf("\nDanh sach cac phan tu trong mang\n");
				for(i=0;i<=currentIndex;i++) {
					printf("%d, ", dataList[i]);
				}
				break;
			case 6:
				printf("\nGoodbye!!!");
				break;
			default:
				printf("\nNhap sai!!!");
				break;
		}
	} while(choose != 6);
	
	return 0;
}

void find(int dataList[100], int currentIndex) {
	printf("\nNhap so can tim: ");
	int x, i, count = 0;
	scanf("%d", &x);
	for(i=0;i<=currentIndex;i++) {
		if(dataList[i] == x) {
			count++;
		}
	}
	printf("\nSo phan tu tim duoc: %d", count);
}

void showMenu() {
	printf("\n1. Nhap phan tu");
	printf("\n2. Sap xep");
	printf("\n3. Tim kiem");
	printf("\n4. Xoa");
	printf("\n5. Hien thi");
	printf("\n6. Thoat");
	printf("\nChon: ");
}