Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Viết chương trình nhập vào mảng 1 chiều gồm n phần tử

  1. #1
    Ngày gia nhập
    09 2010
    Bài viết
    2

    Exclamation Viết chương trình nhập vào mảng 1 chiều gồm n phần tử

    Bài 1:
    a) Viết chương trình nhập vào mảng 1 chiều gồm n phần tử (với n nhập từ bàn phím).
    b) In danh sách các phần tử của mảng lên màn hình gồm tên phần tử và giá trị của từng phần tử.
    c) Sao chép tất cả các phần tử của mảng vừa nhập sang mảng A.
    d) Đão ngược giá trị của các phần tử trong mảng A và Hiển thị kết quả ra màn hình.
    e) Sắp xếp giá trị các phần tử theo thứ tự tăng dần.

    Bài 2:
    Nhập ma trận vuông A, B gồm n dòng và n cột từ bàn phím . Tính tích 2 ma trận T = AxB .
    a. Tính tổng các phần tử nằm trên 2 đường chéo của ma trân T.
    b. Tìm giá trị lớn nhất trên mỗi dòng của ma trận T và lưu vào mảng 1 chiều S. Hiển thị giá trị của các phần tử trong mảng S ra màn hình.




    Bài 3: Viết chương trình dạng Menu in ra màn hình:

    Chọn 1: Tìm Max hai số a,b
    Chọn 2: Giải phương trình bậc 2 (ax2 + bx + c =0)
    Chọn 3: Thoát chương trình.

    Khi người chạy chương tình nhập số 1 sẽ tìm Max hai số, khi nhập số 2 giải PT và nhập số 3 sẽ thoát chương trình còn người dùng nhập ký tự khác sẽ thông báo và yêu cầu nhập lại.

    Các anh có thể tải tệp đính kèm về xem và làm giúp em với. Em xin cảm ơn.
    Attached Files Attached Files
    Đã được chỉnh sửa lần cuối bởi peterdrew : 25-09-2010 lúc 10:19 AM. Lý do: Đổi tiêu đề cho phù hợp!

  2. #2
    Ngày gia nhập
    03 2010
    Bài viết
    33

    Bài 1.

    Code:
    #include"stdio.h"
    #include "conio.h"
    
    void Nhap(int a[], int n);
    void Xuat(int a[], int n);
    void SaoChep(int a[], int b[], int n); // sao chep a sang b
    void DaoNguoc(int a[], int n);
    void SapXep(int a[], int n);
    
    void main()
    {
        int a[100], b[100];
        int n;        // so phan tu cua mang
    
        printf("Nhap so phan tu cua mang : ");
        scanf("%d",&n);
        Nhap(a,n);
        Xuat(a,n);
        printf("\nmang a sau khi dao nguoc : ");
        DaoNguoc(a,n);
        Xuat(a,n);
        SaoChep(a,b,n);
        printf("\nMang b sau khi sao chep tu mang a : ");
        Xuat(b,n);
        printf("\nmang a sau khi sap xep tang dan : ");
        SapXep(a,n);
        Xuat(a,n);
    
    }
    
    void Nhap(int a[], int n)
    {
        for(int i = 0; i < n; i++)
        {
            printf("nhap a[%d] : ",i);
            scanf("%d",&a[i]);
        }
    }
    
    void Xuat(int a[], int n)
    {
        for(int i = 0; i < n; i++)
        {
            printf("%d  ",a[i]);
        }
    }
    
    void SaoChep(int a[], int b[], int n)
    {
        for(int i = 0; i < n; i++)
        {
            b[i] = a[i];
        }
    }
    
    void DaoNguoc(int a[], int n)
    {
        int temp;
        int j = n-1;
        for (int i = 0; i <= n/2; i++)
        {
            temp = a[i];
            a[i] = a[j];
            a[j] = temp;
            j--;
        }
    }
    
    void SapXep(int a[], int n)
    {
        int temp;
        for(int i = 0; i < n; i++)
        {
            for (int j = i; j < n; j++)
            {
                if(a[i] > a[j])
                {
                    temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
    }
    còn mấy bài kia tự suy nghĩ đi nhé. mỏi tay quá làm 1 bài thôi.

  3. #3
    Ngày gia nhập
    09 2010
    Bài viết
    18

    Thực ra bài này mình có làm rồi, nhưng mình không có thói quen đưa bài giải lên vì như vậy sẽ làm mất tính chủ động của bạn.
    Bài 2.

    Hai ma trận nhân với nhau A kích thước m*n nhan với B n*p = ma trận C m*p.
    cách tính Cij cho ai ma trận A, B thỏa mãn ĐK nhân ma trận, không nhất thiết là vuông, còn khi vuông thi càng dễ
    Code:
    for (i = 0; i<m ; i++)
               for (j=0; j< p; j++)
                           for (h=0; h< n; h++)  Cij = Aih * Bhj;
    a)
    câu này chỉ không biết là trong trường hợp ma trận có 2 đường chéo giao nhau tại một phần tử thì phần tử đó được tính mấy lần.
    Nhưng nói thật câu này bạn nên tự suy nghĩ và giải vì nó không có bất kì kiến thức nào khó khăn ở đây cả.

    b) câu này mình chỉ sẽ giúp bạn đoạn code tìm phần tử lớn nhất của môt mảng thôi. Việc tìm phần tử lớn nhất củ một dòng cũng chỉ là tìm phần tử lớn nhất của môt mảng, việc còn lại bạn nên tự xử lý. giả sử có mảng A có n phần tử.
    Code:
    int max;
    max = A[0];
    for (i =0; i<n; i++) if (A[i]>max) max = A[i];
    Bài 3 Mình chỉ giúp bạn chỗ vòng lặp thể hiện menu chọn thôi.
    Code:
    do
    {
        cout <<"Chọn 1: Tìm Max hai số a,b" << endl;
        cout <<"Chọn 2: Giải phương trình bậc 2 (ax2 + bx + c =0)" << endl;
        cout <<"Chọn 3: Thoát chương trình." << endl;	
        cin>> n;
        switch(n)
        {
              case 1: <xu ly viec tim so lon trong hai so, goi ham hay lam gi thi tuy ban> ; break;
              case 2: <xu ly giai phương trinh>; break;
         }
    } while (n!=3)
    Có thể bạn không hài lòng với phương pháp giúp đỡ của mình, nhưng như thế bạn mới chịu code và tìm hiểu, Thân

  4. #4
    Ngày gia nhập
    09 2010
    Bài viết
    2

    Mình cảm ơn 2 bạn nhiều.

  5. #5
    Ngày gia nhập
    10 2012
    Bài viết
    6

    Trích dẫn Nguyên bản được gửi bởi alex1026 Xem bài viết
    Thực ra bài này mình có làm rồi, nhưng mình không có thói quen đưa bài giải lên vì như vậy sẽ làm mất tính chủ động của bạn.
    Bài 2.

    Hai ma trận nhân với nhau A kích thước m*n nhan với B n*p = ma trận C m*p.
    cách tính Cij cho ai ma trận A, B thỏa mãn ĐK nhân ma trận, không nhất thiết là vuông, còn khi vuông thi càng dễ
    Code:
    for (i = 0; i<m ; i++)
               for (j=0; j< p; j++)
                           for (h=0; h< n; h++)  Cij = Aih * Bhj;
    a)
    câu này chỉ không biết là trong trường hợp ma trận có 2 đường chéo giao nhau tại một phần tử thì phần tử đó được tính mấy lần.
    Nhưng nói thật câu này bạn nên tự suy nghĩ và giải vì nó không có bất kì kiến thức nào khó khăn ở đây cả.

    b) câu này mình chỉ sẽ giúp bạn đoạn code tìm phần tử lớn nhất của môt mảng thôi. Việc tìm phần tử lớn nhất củ một dòng cũng chỉ là tìm phần tử lớn nhất của môt mảng, việc còn lại bạn nên tự xử lý. giả sử có mảng A có n phần tử.
    Code:
    int max;
    max = A[0];
    for (i =0; i<n; i++) if (A[i]>max) max = A[i];
    Bài 3 Mình chỉ giúp bạn chỗ vòng lặp thể hiện menu chọn thôi.
    Code:
    do
    {
        cout <<"Chọn 1: Tìm Max hai số a,b" << endl;
        cout <<"Chọn 2: Giải phương trình bậc 2 (ax2 + bx + c =0)" << endl;
        cout <<"Chọn 3: Thoát chương trình." << endl;	
        cin>> n;
        switch(n)
        {
              case 1: <xu ly viec tim so lon trong hai so, goi ham hay lam gi thi tuy ban> ; break;
              case 2: <xu ly giai phương trinh>; break;
         }
    } while (n!=3)
    Có thể bạn không hài lòng với phương pháp giúp đỡ của mình, nhưng như thế bạn mới chịu code và tìm hiểu, Thân
    Cảm ơn bạn nhiều nhé!thế là được rồi,muốn học môn này phải động não thôi không máy móc được

  6. #6
    Ngày gia nhập
    05 2011
    Bài viết
    4

    Mặc định Viết chương trình nhập vào mảng 1 chiều gồm n phần tử

    Một vài thao tác cơ bản khác trong mảng 1 chiều. Qua đó cậu tham khảo nhé.

    Code:
    #include <iostream.h>
    #include <conio.h>
    
    #define MAX 100
    ///-----------------------------------
    /// Thao Tac Voi Mang So Nguyen-------
    /// 1. Sua 1 phan tu------------------
    /// 2. Them moi 1 phan tu-------------
    /// 3. Xoa 1 phan tu------------------
    /// 4. Sap xep - Tang + Giam----------
    /// Update :19/11/12 by Bravo-Team--
    ///-----------------------------------
    
    void nhap(int,int);
    void xuat(int,int);
    void sua(int,int,int,int);
    void them(int,int,int,int);
    void xoa(int,int,int);
    void sapxep(int,int,int);
    int main();
    int menu(int,int);
      /////////////////
     //Cac ham chinh//
    /////////////////
    void nhap(int &n, int a[])
    {
    	//Nhap so phan tu can nhap. (0 < n < 10)
    	do
    	{
    		cout<<endl<<"Hay nhap n phan tu: ";
    		cin>>n;
    		if(n<1||n>10)
    		{
    			//clrscr();
    			cout<<endl<<"Khong kha dung. Moi nhap lai (1->10)";
    		}		
    	}while(n<1||n>10);
    	// Nhap phan tu vao mang.
    	cout<<endl<<"Bat dau nhap mang :";
    	for(int i = 0; i < n; i++)
    	{
    		cout<<endl;
    		cout<<"a["<<i<<"]: ";
    		cin>>a[i];
    	}
    }
    
    void xuat(int n, int a[])
    {
    	cout<<endl;
    	//cout<<"Danh sach mang duoc nhap vao nhu sau:"<<endl;
    	///Dong thong bao da them vao trong moi ham xu ly khac.
    	for(int i = 0; i < n; i++)
    	{
    		cout<<'\t';
    		cout<<a[i];
    	}
    }
    ////////////////////////////////////////////////////////////////////
    /// Ham sua, voi 'vt' la vi tri can sua, 'k' la gia tri thay the.//
    //////////////////////////////////////////////////////////////////
    void sua(int n, int a[], int &vt, int &k)
    {
    	//Bat loi nhap sai vi tri
    	do{
    		cout<<endl<<"Hay nhap vi tri can sua trong mang tren :";
    		cin>>vt;
    	if(vt < 1 || vt > n)
    	{
    		//clrscr();	//Xoa man hinh cu.
    		cout<<"Khong kha dung, Hay nhap lai 0 < Vi tri < "<<n+1<<endl;
    	}
    	}while(vt < 1 || vt > n);	
    	cout<<endl<<"Nhap vao gia tri can thay the : ";
    	cin>>k;
    	for(int i = 1; i  <= n; i++)	//Phai chay tu 1-n neu nhap theo 1,2,3
    	{
    		if(i==vt)
    		a[i-1] = k;	//Tru i cho 1 de nhap theo thu tu 1,2,3....
    	}
    	cout<<"Phan tu thu "<<vt<<"da duoc thay the thanh cong. Danh sach hien tai :";
    	xuat(n,a);
    }
    
    void them(int n, int a[], int &vt, int &k)
    {
    	//Bat loi nhap sai vi tri
    	do{
    		cout<<endl<<"Hay nhap vi tri can them moi trong mang tren :";
    		cin>>vt;
    	if(vt < 1 || vt > n)
    	{
    		//clrscr();	//Xoa man hinh cu.
    		cout<<"Khong kha dung, Hay nhap lai vi tri: 1 --> "<<n;
    	}
    	}while(vt < 1 || vt > n);
    	cout<<endl<<"Nhap vao gia tri can them(chen) : ";
    	cin>>k;
    	//Dang TEST
    	if(vt==n)	//Them vao cuoi mang.
    	{
    		a[n-1]=k;
    	}
    	else if(vt > 0 && vt < n)	//Them vao vi tri dau tien den gan cuoi cua mang.
    	{
    		///
    		///vt-1 : Vi mang chay tu 0-->n-1. Neu ko user se phai nhap tu 0,1,2,3
    		///
    		for(int i = n-1; i >vt-1; i--)
    		{
    			a[i] = a[i-1]; 	//Day? danh sach tu sau vi tri ve ben phai. De co cho trong cho vi tri nhap
    		}
    		for(i = 0; i < n; i++)
    		{
    			if(i==(vt-1))	//User nhap 1 thi vi tri se bang  vt-1 = 0. 
    			a[i]=k;
    		}
    	}
    	cout<<"Phan tu thu "<<vt<<"da duoc them thanh cong. Danh sach hien tai :";
    	xuat(n,a);	//goi ham in ra danh sach vua moi them.
    }
    
    void xoa(int n, int a[], int &vt)
    {
    	do{
    		cout<<endl<<"Hay nhap vi tri can xoa trong mang tren :";
    		cin>>vt;
    	if(vt < 1 || vt > n+1)
    	{
    		//clrscr();	//Xoa man hinh cu.
    		cout<<"Khong kha dung, Hay nhap lai vi tri: 1 --> "<<n+1;
    		
    	}
    	}while(vt < 1 || vt > n+1);	//Vi da xoa n-- nen phai tang 1.
    	/*Xoa vi tri da chon*/
    	for(int i = 0; i < n; i++)
    	{
    		if(i==(vt-1))
    		a[i]=NULL;
    	}
    	/*Dua cac phan tu sau vi tri da xoa ve ben trai*/
    	///De mo----------
    	///	5 3 4 2 1
    	/// 5 x 4 2 1
    	/// 5 4 2 1
    	///---------------
    	for(i = vt-1; i <n; i++)
    	{
    		a[i]= a[i+1];
    	}
    	cout<<"Phan tu thu "<<vt<<"da duoc xoa thanh cong. Danh sach hien tai :"<<endl;
    	xuat(n,a);	//In ra ket qua sau khi xoa thanh cong !
    }
    
    
    void sapxep(int n, int a[], int mode =1)
    {
    	for(int i = 0; i < n-1; i++)
    		for(int j =i+1; j<n; j++)
    		if(a[i]>a[j]==mode)
    		{			
    			int temp = a[i];
    			a[i] = a[j];
    			a[j] = temp;
    		}
    }
    
    /*Ham Menu*/
    int menu(int n, int a[])
    {
    	clrscr();		// Xoa het man hinh thao tac nhap
    	cout<<"Mang hien tai nhu sau:"<<endl;
    	xuat(n,a);	//in ra mang sau khi duoc thao tac.
    	cout<<endl;
    	
    	cout<<"-------------------------------------------------------"<<endl;
    	cout<<"	1. Sua 1 phan tu tai vi tri bat ky"<<endl;
    	cout<<"	2. Them 1 phan tu tai vi tri bat ky"<<endl;
    	cout<<"	3. Xoa 1 phan tu tai vi tri bat ky"<<endl;
    	cout<<"	4. Sap xep mang Tang - Giam"<<endl;
    	
    	cout<<"	0. Thoat chuong trinh"<<endl;
    	cout<<"-------------------------------------------------------"<<endl;
    	cout<<"	Hay chon cac phim chuc nang de thao tac :"<<endl;
    	int choice;
    	cin>>choice;
    	return choice;
    }
    /*Ham Main*/
    int main()
    {
    	clrscr();		// Clear the screen
    	textcolor(GREEN);//Color: CYAN, RED, BLUE, MAGENTA  v.v...
    	int choice;
    	int a[MAX];
    	int n;
    	int vt;
    	int k;
    	int mode;
    	nhap(n,a);	
    	while(1)
    	{
    		//textcolor(CYAN);
    		choice=menu(n,a);	
    		switch (choice)
    		{
    			case 1: sua(n,a,vt,k); break;
    			case 2: n++; them(n,a,vt,k);break;
    			case 3: n--; xoa(n,a,vt) ;break;
    			case 4: cout<<"Ban muon sap xep Tang hay Giam. Nhap 1 neu Tang - 0 neu giam:";
    					cin>>mode;
    					sapxep(n,a,mode); 
    					cout<<"Danh sach sau khi sap xep nhu sau:"<<endl;
    					xuat(n,a);break;
    			
    		}	
    		if(choice==0)break;
    		getch();
    	}
    	return 0;
    }
    Đã được chỉnh sửa lần cuối bởi chunexpress : 22-11-2012 lúc 10:08 PM.

Các đề tài tương tự

  1. Bài tập C Viết chương trình liệt kê các giá trị lớn nhất trong mảng 1 chiều
    Gửi bởi quockhang trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 22-09-2011, 05:47 PM
  2. Bài tập C Nhập x, viết hàm chỉ ra vị trí xuất hiện x trong mảng 1 chiều
    Gửi bởi HoangCoi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 21-08-2011, 02:15 PM
  3. Bài tập C Viết chương trình khởi tạo giá trị các phần tử là 0 cho mảng một chiều các số nguyên gồm n phần tử.
    Gửi bởi anhtran trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 04-06-2011, 11:36 AM
  4. Viết hàm tìm phần tử xuất hiện nhiều nhất trong mảng 1 chiều các số nguyên?
    Gửi bởi fire_dragon14988 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 46
    Bài viết cuối: 28-08-2010, 05:14 PM
  5. Viết chương trình nhập vào 1 chuỗi các số hạng tính cộng trừ,nhân,chia
    Gửi bởi huuhung trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 15-04-2009, 04:46 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn