kết quả từ 1 tới 2 trên 2

Giúp em bài tập C/C++ về mảng 1 chiều số nguyên tố

  1. #1
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 311482
    Giới tính: Nam
    Bài gửi
    13

    Giúp em bài tập C/C++ về mảng 1 chiều số nguyên tố

    Viết các hàm sau:
    - Nhập liên tiếp 1 dãy các số nguyên cho đến khi gặp số 0 thì dừng
    - Sắp xếp dãy số nguyên sao cho:nửa đầu của dãy gồm các phần tử chẵn nửa sau gồm các phần tử lẻ và số 0 nằm chính giữa của dãy
    - Hiện ra màn hình các số nguyên tố có trong dãy vừa nhập. Nếu không tồn tại số nguyên tố nào thì hiện ra thông báo:"Không tồn tịa số nguyên tố có trong dãy"
    - Đổi chỗ giữa 2 phần tử lớn nhất và nhỏ nhất trong dãy . Nếu tồn tại nhiều phần tử cùng mang giá trị lớn nhất và nhỏ nhất thì đổi chỗ 2 phần tử đầu tiên tìm được trong dãy
    Viết hàm main() kiểm tra kết quả thực hiện các hàm
    Quick reply to this message Trả lời       

  2. #2
    Ðến Từ
    Yên Bái
    Thành Viên Thứ: 235356
    Giới tính: Nam
    Bài gửi
    746

    Reply: Giúp em bài tập C/C++ về mảng 1 chiều số nguyên tố

    Của bạn đây
    Mã:
    #include<stdio.h>
    void nhap(int *a, int &n)
    {
    	for(int i = 0 ; ; i ++)
    	{
    		scanf("%d",(a+i));
    		n=i;
    		if(*(a+i) ==0)
    			break;
    	}
    	n++;
    	return ;
    }
    void swap(int &a, int &b)
    {
    	int tmp = a;
    	a=b;
    	b=tmp;
    	return ;
    }
    int* sort(int *a, int n)
    {
    	int *b = new int;
    	int dem =0;
    	for(int i = 0 ; i < n ; i ++)
    		if(*(a+i) % 2 ==0 && *(a+i) != 0)
    			*(b+dem++)=*(a+i);
    	*(b+dem++)=0;
    	for(int i = 0 ; i < n ; i ++)
    	{
    		if(*(a+i) % 2 !=0 )
    			*(b+dem++)=*(a+i);
    	}
    	return b;
    }
    int snt(int n)
    {
    	if(n < 2)
    		return 0;
    	if( n == 2 || n == 3)
    		return 1;
    	if(n %2 ==0 || n %3 == 0)
    		return 0;
    	for(int i = 3 ; i < n ; i+=2)
    		if(n %i == 0)
    			return 0;
    	return 1;
    }
    void snt(int *a, int n)
    {
    	int kt =0;
    	for(int i = 0 ; i < n ; i ++)
    		if(snt(*(a+i)) == 1)
    		{
    			printf("%d ",*(a+i));
    			kt++;
    		}
    	if(kt ==0)
    		printf("K co snt");
    	return ;
    }
    void xuatmang(int *a, int n)
    {
    	for(int i = 0 ; i < n ; i ++)
    		printf("%d ",*(a+i));
    	printf("\n");
    	return ;
    }
    void doicho(int *a, int n)
    {
    	int min = *a;
    	int max = min;
    	int vtmin=0,vtmax=0;
    	for(int i = 1 ; i < n ; i ++)
    	{
    		if(*(a+i) > max )
    		{
    			max = *(a+i);
    			vtmax = i;
    		}
    		if(*(a+i) < min )
    		{
    			min = *(a+i);
    			vtmin = i;
    		}
    	}
    	swap(*(a+vtmax),*(a+vtmin));
    	return ;
    }
    int main()
    {
    	int *a = new int[10000];
    	int *b = new int[10000];
    	int n=0;
    	nhap(a,n);
    	xuatmang(a,n);
    	b=sort(a,n);
    	xuatmang(b,n);
    	printf("\n");
    	snt(a,n);
    	printf("\n");
    	doicho(a,n);
    	xuatmang(a,n);
    }
    class TapLamHacker{ private String TráiTim;
    private void Set_TráiTim(String Gái){ this.TráiTim = "Thanh Trâm"; }
    public String Get_TráiTim(){ return "Thanh Trâm"; }
    public String ToString(){return"My love is Thanh Trâm For one future go shopping not concerned about price ";}
    } Liên hệ Skype: Taplamhacker