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

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

Cho menu chương trình như sau

1. Nhập vào N số nguyên

2. Hiển thị danh sách các phần tử trong mảng

3. Tính tổng các phần tử trong mảng

4. Săp xếp các phần tử trong mảng theo thứ tự tăng dần

5. Thoát

Yêu cầu :

Khai báo biến con trỏ t trong chương trình

- Khi người dùng lựa chọn 1 -> thực hiện hỏi người dùng số phần tử cần thểm vào mảng t. Sau đó nhập các phần tử được thêm vào cho mảng t

sau khi nhập -> hiển thị lại menu chương trình

- Khi người dùng lựa chọn 2 -> thực hiện theo yêu câu -> sau khi thực hiên xong -> hiển thị lại menu chương trình

- Khi người dùng lựa chọn 3 -> thực hiện theo yêu câu -> sau khi thực hiên xong -> hiển thị lại menu chương trình

- Khi người dùng lựa chọn 4 -> thực hiện theo yêu câu -> sau khi thực hiên xong -> hiển thị lại menu chương trình

- Khi người dùng lựa chọn 5 -> thoát chương trình

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

https://gokisoft.com/1912

Bình luận

avatar
Phạm Minh Đức [C2110L]
2021-12-22 13:46:55



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


int main() {
	int choose;
	int *p, total = 0;
	int n,i;
	do{
		printf("\n1. Nhap vao N so nguyen");
		printf("\n2. Hien thi danh sach cac phan tu trong mang");
		printf("\n3. Tinh tong  cac phan tu trong mang");
		printf("\n4. Sap xep cac phan tu trong mang theo thu tu tang dan");
		printf("\n5. Thoat");
		
		printf("\nNhap lua chon: ");
		scanf("%d", &choose);
		switch (choose){
			case 1:{
				printf("\nNhap so luong so nguyen N can them: ");
				scanf("%d", &n);
				if(total == 0 ){
					p = (int *) calloc (n, sizeof(int));
				} else {
					p = (int *) realloc(p, (total + n) * sizeof(int));
				}
				for (i=total;i<total+n;i++){
					printf("p[%d] = ", i);
					scanf("%d", &p[i]);
				}
				total +=n;
				break;
				}
			case 2: {
				printf("\nDanh sach cac phan tu trong mang: ");
				for(i=0; i<total; i++){				
				printf("%d ", p[i]);
				}
				break;
			}
			case 3: {
				int sum =0;
				for (i=0;i<total;i++){
					sum += p[i];
				}
				printf("\nTong cac phan tu trong mang sum = %d", sum);
				break;
			}
			case 4:{
				int j;
				printf("\nSau khi sap xep: ");
				for (i=0;i<total;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("%d ", p[i]);	}
					
				
				break;
			}
			case 5: {
				printf("Thoat");
				break;
			}
			default: {
			
			printf("Nhap lai");
			break;}
		}
	}while (choose != 5);
	return 0;
}


avatar
Đỗ Minh Tâm [community,C2010G]
2020-12-21 04:42:06



#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
	int N, a, b, tam, sum, sx;
	int choose;
	int *t;
	do{
		printf("\n1. Nhap vao cac so nguyen");
		printf("\n2. Hien thi danh sach cac phan tu");
		printf("\n3. Tinh tong cac phan tu");
		printf("\n4. Sap xep theo thu tu tang dan");
		printf("\nchon so: "); 
		scanf("%d",&choose);
	switch(choose){
		case 1:
			printf("\nNhap vao so nguyen N:");
			scanf("%d",&N);
			t=(int*) malloc (N*sizeof(int));
				
			for(a=0;a<N;a++){	
			printf("nhap du lieu phan tu thu %d: ",a);
			scanf("%d", t+a);
			}
			break;	
		case 2:
			for (a=0;a<N;a++){
			printf("\nt[%d] = %d ",a, t[a]);
			}
			break;
		case 3:
			sum = 0;
			for(a=0;a<N;a++){
				sum = sum + t[a];}
			printf("Tong cac phan tu trong mang la %d", sum);
			break;
		case 4:
		for(a=0;a<N-1;a++){
	         	for(b=a+1;b<N;b++) {
		         	if(*(t+a)>*(t+b)) {
			        	sx=*(t+a);
			         	*(t+a)=*(t+b);
			        	*(t+b)=sx;
			        }
				}
			}
			printf("cac phan tu thu tu tang dan la:");
			for (a=0;a<N;a++){
				printf("%d", *(t+a));
			}
			break;
		case 5:
			printf("Thoat");
			break;
		default:
		printf("Nhap sai!!!");	
		break;		
			
	}
	}while(choose<=5);
	
	return 0;
}


avatar
Nguyễn Hữu Hiếu [T2008A]
2020-10-01 15:00:45



#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 count = 0, choose;
	int n, i, j, temp, *t;
	do {
		showMenu();
		scanf("%d", &choose);
		switch(choose) {
			case 1:				
				printf("\nNhap n = ");
				scanf("%d", &n);
				t = (int *) malloc (n * sizeof(int));
				for(i=0;i<n;i++) {
					printf("\nNhap t[%d]", i+1);
					scanf("%d", t+i);
					count = count + t[i];				
				}
				
				break;
			case 2:
				printf("Cac phan tu trong mang:");
				for(i=0;i<n;i++) {
					printf("%d, ", t[i]);
				}
				break;
			case 3:
				printf("\nTong cac phan tu: %d", count);
				break;
			case 4:
				for(i=0;i<n-1;i++) {
					for(j=i;j<n;j++) {
						if(t[i] > t[j]) {
						temp = t[i];
						t[i] = t[j];
						t[j] = temp;
						}
					
					}
				
				}
				printf("\nCac phan tu sau khi sap xep: ");
				for(i=0;i<n;i++) {
				printf("%d, ", t[i]);
				}
				break;
			case 5:
				printf("\nThoat");
				break;
			default:
				printf("\nNhap sai!!!");
		}
	
	} while(choose != 5);
	
	
	
	
	
	
	
	
	
	return 0;
}

void showMenu() {
	printf("\n1. Nhap vao N so nguyen");
	printf("\n2. Hien thi danh sach cac phan tu trong mang");
	printf("\n3. Tinh tong cac phan tu trong mang");
	printf("\n4. Sap xep tang dan");
	printf("\n5. Thoat");
	printf("\nChon choose: ");
	
}


avatar
Trần Thị Khánh Huyền [T2008A]
2020-09-25 09:29: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 N, i, j, tam, sum;
	int choose;
	int *t;
	do{
		printf("\n1. Nhap vao N so nguyen");
		printf("\n2. Hien thi danh sach cac phan tu trong mang");
		printf("\n3. Tinh tong cac phan tu trong mang");
		printf("\n4. Sap xep cac phan tu trong mang theo thu tu tang dan");
		printf("\nchon so: "); scanf("%d",&choose);
	switch(choose){
		case 1:
			printf("\nNhap vao so nguyen N:");
			scanf("%d",&N);
			t=(int*) malloc (N*sizeof(int));
				printf("\nNhap du lieu cac phan tu trong mang: ");
			for(i=0;i<N;i++){	
			printf("Nhap t[%d]",i);
			scanf("%d", t+i);
			}
			break;	
		case 2:
			for (i=0;i<N;i++){
			printf("\nt[%d] = %d ",i, t[i]);}
			break;
		case 3:
			sum = 0;
			for(i=0;i<N;i++){
				sum = sum + t[i];}
			printf("Tong cac phan tu trong mang la %d", sum);
			break;
		case 4:
			for(i=0;i<N;i++){
				if (t[i]>=t[i+1]){
				for(j=1;j<=N;j++){
					tam = t[i];
					t[i]=t[j];
					t[j]=tam;
				}
			
			}
			}
			printf("cac phan tu thu tu tang dan la:");
			for (i=0;i<N;i++){
				printf("%d", *(t+i));
			}
			break;
		case 5:
			printf("Thoat");
			break;
		default:
		printf("Nhap sai!!!");	
		break;		
			
	}
	}while(choose<=5);
	
	return 0;
}


avatar
Triệu Văn Lăng [T2008A]
2020-09-23 06:34:27



#include <stdio.h>
#include <stdlib.h>
#include <conio.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  n, i, tong, sx, a, j;
	int *t;
	while(3) {
		printf("\n========MENU========");
		printf("\nnhap 1 de nhap n so nguyen");
		printf("\nnhap 2 de hien thi danh sach cac phan tu trong mang");
		printf("\nnhap 3 de tinh tong cac phan tu trong mang");
		printf("\nnhap 4 de sawp xep cac phan tu theo thu tu tang dan");
		printf("\nnhap 5 de thoat");
		printf("\nmoi chon: "); scanf("%d",&a);
		
	switch(a) {
		case 1:
			printf("\n so phan tu : "); scanf("%d",&n);
			t=(int*) malloc (n*sizeof(int));
			for(i=0;i<n;i++){
				printf("\nnhap t[%d]= ",i);
				scanf("%d",t+i);
			}
			break;
		case 2:
		    for(i=0;i<n;i++) {
				printf("\ndanh sach cac phan tu trong mang la %d ",t[i]);
		     		}	
	        break;
		case 3:
		    tong=0;
			for(i=0;i<n;i++) {
				tong=tong+*(t+i);
				printf("\ntong la %d ",tong);
			}
		case 4:
			
		    for(i=0;i<n-1;i++){
	         	for(j=i+1;j<n;j++) {
		         	if(*(t+i)>*(t+j)) {
			        	sx=*(t+i);
			         	*(t+i)=*(t+j);
			        	*(t+j)=sx;
			}
		}
	}	
		    printf("\ndanh sach mang theo thu tu tang dan ") ;   	
			for(i=0;i<n;i++){
	        	printf("%d", *(t+i));
	}
		    break;
		case 5:
		     exit(0);
		 default: 
		    printf("\nnhap sai moi nhap lai");
		    break;     
	}
	}
	return 0;
}


avatar
Nguyễn Xuân Mai [T2008A]
2020-09-22 13:56:02



#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 N,*t,i,a,tong=0,b,j;
	
	do{
		printf("\n1.Nhap vao so nguyen N \n2.Hien thi danh sach cac phan tu trong mang \n3.Tinh tong cac phan tu trong mang \n4.Sap xep cac phan tu trong mang theo thu tu tang dan \n5.Thoat");
		printf("\nChon Menu so:");
		scanf("%d",&a);
		
		switch(a){
			case 1:
				printf("\nNhap so nguyen N:");
				scanf("%d",&N);
				t = (int *) malloc (N * sizeof(int));
				for(i=0;i<N;i++){
					printf("\nNhap t[%d] = ", i);
					scanf("%d", t + i);
				}
				break;
			case 2:
				for(i=0;i<N;i++){
					printf("\nt[%d] = %d ",i, t[i]);
				}
				break;			
			case 3:
				for(i=0;i<N;i++){
					tong=tong+t[i];	
				}printf("\nTong cac phan tu = %d ",tong);
				break;
			case 4:
				for(i=0;i<=N-1;i++){
					for(j=i+1;j<N;j++){
						if(t[i]>t[j]){
							b = t[i];
							t[i] = t[j];		
							t[j] = b;
						}
					}
				}
				for(i=0;i<=N-1;i++){
					printf("%d ",t[i]);
				}
				break;	
			case 5:
				printf("Thoat");
				break;
			default:
				printf("Nhap lai");
				break;				
		}
	}while(a<=5);


	return 0;
}


avatar
hainguyen [T2008A]
2020-09-22 13:00:44



#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 a, b, c, d, e,num;
	int *p;
	int i;
	while (1) {
		
		printf("\nMenu");
		printf("\n1. Nhap vao N so nguyen.");
		printf("\n2. Hien thi danh sach cac phan tu trong mang.");
		printf("\n3. Tinh tong cac phan tu trong mang.");
		printf("\n4. Sap xep cac phan tu trong mang theo thu tu tang dan.");
		printf("\n5. Exit.");
		printf("\nNhap lua chon: ");
		scanf("%d", &a);
		
		switch(a){
			case 1:
				printf("\nNhap so phan tu : ");
				scanf("%d", &b);
				p = (int *) malloc (b * sizeof(int));
				for(i=0; i<b; i++){
					printf("\nNhap p[%d] = ", i);
					scanf("%d", p + i);
				}
				break;
				fflush(stdin); fflush(stdout);
			case 2:
				for(i=0; i<b; i++){
					printf("\np[%d] = ", i, *(p + i));
				}
			    break;
			case 3:
				num = 0;
				for(i=0; i<b; i++){
					num+= *(p + i);
					printf("\nnum = %d", num);
				}
				break;
			case 4:
				for(i=0; i<b-1; i++){
					c = i;
					for(d = i+1; d<b; d++){
						if(p[c]>p[d]){
							c = d;
						}
					}
					e = c;
					c = p[i];
					p[i] = e;
				}
					
				break;
			case 5:
				printf("\nExit.");
				exit(0);
				
		
		}
	}
	
	return 0;
}


avatar
vuong huu phu [T2008A]
2020-09-22 06:28:49



#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 *a;
int n,i,t,c,j,e;
e=0,j=0;
do{
printf("\n   menu   ");
printf("\n1.nhap vao so nguyen n ");
printf("\n2.danh sach cac phan tu");
printf("\n3.tong cac phan tu");
printf("\n4.sap xeps cac phan tu theo thu tu tang dan");
printf("\n5.thoat");
printf("\n chon : ");
scanf("%d",&c);
switch (c){
	case 1:
		printf("\n nhap so pt ");
		scanf("%d",&n);
		a=(int*)malloc(n*sizeof(int));
		for(i=0;i<n;i++){
			printf("\n nhap phan tu [%d] ",i);
			scanf("%d",a+i);	}
			break;
	case 2:
		for(i=0;i<n;i++){
		printf("\n pt cu a[%d] = %d ",i,a[i]);
		}break;
	case 3:
	    t=0;
     	for(i=0;i<n;i++){
 		t=t+i;
    	} printf("\n tong = %d",t);
    	break;
 	case 4:
		for(i=0;i<n-1;i++){
		for(j=i+1;j<n;j++){
			if(a[i]>a[j]){
				e=a[i];
				a[i]=a[j];
				a[j]=e;
			}
		}	
		}for(i=0;i<n;i++){
			printf("%d",a[i]);
		}break;
		case 5:
			printf("\n thoat ");
			break;
		}}
while (c!=5);	

	return 0;
}


avatar
Do Trung Duc [T2008A]
2020-09-22 04:57:44



#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 temp, total, S, choose, a, b, i,j, *t;
	total = 0;
	
	 do {
		printf("\n1.Nhap vao N so nguyen\n2.Hien thi danh sach cac phan thu trong mang\n3.Tin tong cac phan tu trong mang\n4.Sap xep phan tu trong mang theo thu tu tang dan\n5.Thoat");
		printf("\nNhap lua chon choose = ");
		scanf("%d", &choose);
		
		switch(choose){
		case 1:
			printf("\nNhap so phan tu can them cho mang: "); 
			scanf("%d", &a);
			if(total==0){
			total = a;
			t =(int*) calloc (a , sizeof (int));
			}else {
				total = total + a;
			t = (int*) realloc (t, total * sizeof(int));	
			}
			
			for(i=total-a;i<total;i++){
				printf("\nNhap cac phan tu them cho mang t[%d] = ", i);
				scanf("%d", &t[i]);
			}
			break;
			
			case 2:
				for(i=0;i<total;i++){
				printf("\nPhan tu trong mang t[%d] = %d ", i, t[i]);
			}
				break;
				
			case 3:
				S = 0;
				for(i=0;i<total;i++){
				S = S + t[i];
			}
				printf("\nTong cac phan tu trong mang S = %d", S);
				break;
				
			case 4:
				for(i=0;i<total-1;i++){
					for(j=i+1;j<total;j++){
						if (t[i] < t[j]){
							temp = t[i];
							t[i] = t[j];
							t[j] = temp;
						}
					}
				}
				printf("\nDay phan tu tang dan nhu sau: ");
				for(i=0;i<total;i++){
					printf(" %d", t[i]);
				}
			    break;
			case 5:
				printf("Thoat chuong trinh");
				break;
	}
	} while(choose!=5);
	
	return 0;
}
	


avatar
Nguyên Phấn Đông [community]
2020-09-21 14:37:35



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

int main(){

int n,sum,tg;
 
 int key;
 while (true){
 	int t[100];
 	system("cls");
        printf("\n______________________MENU_____________________________");
		printf("\n1. Nhap vao N so nguyen.");
		printf("\n2. Hien thi danh sach cac phan tu trong mang.");
		printf("\n3. Tinh tong cac phan tu trong mang.");
		printf("\n4. Sap xep cac phan tu trong mang theo thu tu tang dan.");
		printf("\n5. Thoat.");
		printf("\n________________________________________________________");
		printf("\nNhap Lua Chon: ");
		scanf("%d", &key);
	switch(key){
		case 1:
			printf("N:= "); scanf("%d",&n);
			for(int i=0;i<n;i++) printf("Nhap t[%d]: " ,i), scanf("%d",&t[i] );
			printf("\nBam phim bat ky de tiep tuc!");
            getch();
			break ;
		case 2:
			for (int i = 0; i < n; i++) printf("\n%d",t[i]);

		    printf("\nBam phim bat ky de tiep tuc!");
            getch();
			break ;
		case 3:
			sum =0;
			for(int i=0;i<n;i++) sum+= t[i];
			printf("tong cac so bang: %d",sum);
			printf("\nBam phim bat ky de tiep tuc!");
            getch();
			break ;
		case 4: 
			for(int i=0; i<n-1; i++){
				for(int j=i+1; j<n; j++){
					if (t[i] < t[j]){
						tg = t[i];
						t[i]=t[j];
						t[j]=tg;
					}
				}
			}
			for (int i = 0; i < n; i++) printf("%d ",t[i]);
			printf("\nBam phim bat ky de tiep tuc!");
            getch();
			break;
		case 5:
	
				printf("THOAT!");
				exit(0);				
		default:			
		printf("NHAP SAI.");
	   	break;
	
 }
}
return 0;

}