By GokiSoft.com| 08:54 23/12/2020|
Lập Trình C

[Share Code] Bài tập pointer nâng cao - cấp phát động - Lập trình C


Bài tập pointer nâng cao - cấp phát động - Lập trình C

#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();

int main(int argc, char *argv[]) {
	int *t, total = 0, n, choose, i, j;
	int sum = 0;
	
	do {
		showMenu();
		scanf("%d", &choose);
		
		switch(choose) {
			case 1:
				printf("\nNhap so phan tu can them N = ");
				scanf("%d", &n);
				if(total == 0) {
					//cap phat lan dau
					t = (int *) calloc (n, sizeof(int));
					total = n;
				} else {
					total += n;
					t = (int *) realloc (t, total * sizeof(int));
				}
				//Nhap cac phan tu trong mang t: total - n -> total - 1
				for(i=total-n;i<total;i++) {
					printf("\nNhap t[%d] = ", i);
					scanf("%d", t + i);
				}
				break;
			case 2:
				printf("\nDanh sach cac phan tu trong mang\n");
				for(i=0;i<total;i++) {
					printf("%d, ", t[i]);
				}
				break;
			case 3:
				sum = 0;
				for(i=0;i<total;i++) {
					sum += t[i];
				}
				printf("\nTong: %d", sum);
				break;
			case 4:
				//Sap xep cac phan tu trong mang theo thu tu tang dan
				for(i=0;i<total-1;i++) {
					for(j=i+1;j<total;j++) {
						if(t[i] > t[j]) {
							//swap
							int tmp = t[i];
							t[i] = t[j];
							t[j] = tmp;
						}
					}
				}
				break;
			case 5:
				printf("\nGoodbye!!!");
				break;
			default:
				printf("\nNhap sai!!!");
				break;
		}
	} while(choose != 5);
	
	return 0;
}

void showMenu() {
	printf("\n1. Nhap N so nguyen");
	printf("\n2. Hien thi");
	printf("\n3. Tinh tong");
	printf("\n4. Sap xep");
	printf("\n5. Thoat");
	printf("\nChon: ");
}




Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)