By GokiSoft.com| 19:21 23/12/2021|
Lập Trình C

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

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 */

int main(int argc, char *argv[]) {
	//B1. Khai bao -> malloc, calloc -> cap phat dau tien, realloc -> cac lan cap phat sau & se su dung cach nay
	int *t, total = 0, n, i, j, choose;
	
	do {
		printf("\n1. Nhap N so nguyen");
		printf("\n2. Hien thi");
		printf("\n3. Tinh tong");
		printf("\n4. Sap xep");
		printf("\n5. Thoat");
		printf("\nChon: ");
		scanf("%d", &choose);
		
		switch(choose) {
			case 1: {
				//Them cac phan tu vao trong mang
				printf("\nNhap so phan tu can them N = ");
				scanf("%d", &n);
				
				if(total == 0) {
					t = (int *) calloc (n, sizeof(int));
				} else {
					t = (int *) realloc (t, (total + n) * sizeof(int));
				}
				
				//Nhap cac phan tu index: total -> total + n
				for(i=total;i<total+n;i++) {
					printf("\nNhap t[%d] = ", i);
					scanf("%d", t + i);
				}
				
				total += n;
				break;
			}
			case 2: {
				printf("\nHien thi cac phan tu trong mang: ");
				for(i=0;i<total;i++) {
					printf("%d ", t[i]);
				}
				break;
			}
			case 3: {
				int sum = 0;
				for(i=0;i<total;i++) {
					sum += t[i];
				}
				printf("\nTong = %d", sum);
				break;
			}
			case 4: {
				//Su dung giai thuat selection sort
				for(i=0;i<total-1;i++) {
					for(j=i+1;j<total;j++) {
						if(t[i] > t[j]) {
							int tmp = t[i];
							t[i] = t[j];
							t[j] = tmp;
						}
					}
				}
				printf("\nSap xep thanh cong!!!");
				/**int *p;
				p = (int *) malloc(total * sizeof(int));
				for(i=0;i<total;i++) {
					p[i] = t[i];
				}
				
				for(i=0;i<total-1;i++) {
					for(j=i+1;j<total;j++) {
						if(p[i] > p[j]) {
							int tmp = p[i];
							p[i] = p[j];
							p[j] = tmp;
						}
					}
				}
				printf("\nHien thi cac phan tu trong mang: ");
				for(i=0;i<total;i++) {
					printf("%d ", p[i]);
				}*/
				break;
			}
			case 5: {
				printf("\nThoat chuong trinh!!!");
				break;
			}
			default: {
				printf("\nNhap sai!!!");
				break;
			}
		}
	} while(choose != 5);
	
	return 0;
}




Tags:



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

5

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

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó