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)