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

Đề tài: Sửa hàm tìm min, max trên 1 dòng của mảng giúp mình?

  1. #1
    Ngày gia nhập
    03 2009
    Nơi ở
    Hội An
    Bài viết
    42

    Mặc định Sửa hàm tìm min, max trên 1 dòng của mảng giúp mình?

    ĐỀ BÀI:
    1. Xây dựng các hàm sau đây
    a. Nhập vào một mảng hai chiều các số nguyên.
    b. Thực hiện các phép cộng, nhân hai mảng này.
    c. Xác định phần tử lớn nhất, nhỏ nhất trong mỗi dòng.
    d. Xây dựng mới một ma trận từ ma trận cũ, trong đó các phần tử của
    ma trận cũ này có giá trị chẵn sẽ bằng chính nó cộng với phần tử
    lớn nhất của dòng đó. Các phần tử lẻ sẽ bằng chính nó trừ cho
    phần tử nhỏ nhất của dòng đó. Tương ứng với chỉ số đó, ta sẽ xây
    dựng nên ma trận mới từ ma trận cũ đ~ cho.
    Ví dụ:
    1 2
    3 2
    Phần tử lớn nhất của dòng 1: 2
    Phần tử lớn nhất của dòng 2: 3
    Phần tử nhỏ nhất của dòng 1: 1
    Phần tử nhỏ nhất của dòng 2: 2
    Phần tử 1x1 là lẻ, nên nó bằng 1-1=0, và đây chính là phần tử 1x1
    trong ma trận mới. Tương tự cho các phần tử còn lại. Ma trận mới
    thu được là
    0 4
    1 5
    Mọi người giúp mình ở câu c nha, và đây là code của mình
    Code:
    #include <iostream>
    using namespace std;
    #define MAX 20
    
    void nhapsl(int a[MAX][MAX], int b[MAX][MAX],int n, int m);
    void xuatsl(int a[MAX][MAX], int b[MAX][MAX],int n, int m);
    void tinhtoan (int a[MAX][MAX], int b[MAX][MAX],int n, int m);
    void timgiatrilonnho(int a[MAX][MAX], int n,int m);
    int main()
    {
    	int n,m;
    	int a[MAX][MAX];
    	int b[MAX][MAX];
    	cout<<"Nhap vao so hang: ";
    	cin>>n;
    	cout<<"Nhap vao so cot: ";
    	cin>>m;
    	nhapsl(a,b,n,m);
    	cout<<"\n";  // goi den ham nhapsl	
    	xuatsl(a,b,n,m); // goi den ham xuatsl
    	cout<<"\n";
    	tinhtoan(a,b,n,m);  // goi den ham tinhtoan
    	cout<<"\n";
    	timgiatrilonnho(a,n,m);
    
    }
    // Nhap ma tran
    void nhapsl(int a[MAX][MAX],int b[MAX][MAX], int n, int m)
    {
    	int i,j;
    	// Nhap ma tran A
    	for(i=0;i<=n;i++)
    		for(j=0;j<=m;j++)
    			{
    				cout<<"A["<<i<<"]["<<j<<"]: ";
    				cin>>a[i][j]; //co the dung phep gan int x=a[i][j];
    
    			}
    	cout<<"\n";
    	// Nhap ma tran B
    	for(i=0;i<=n;i++)
    		for(j=0;j<=m;j++)
    			{
    				cout<<"B["<<i<<"]["<<j<<"]: ";
    				cin>>b[i][j]; //co the dung phep gan int x=b[i][j];
    			}
    }
    // Xuat ma tran
    void xuatsl(int a[MAX][MAX],int b[MAX][MAX], int n, int m)
    {
    	int i,j;
    	// In ma tran A
    	for(i=0;i<=n;i++)
    	{
    		cout<<"\n";
    		for(j=0;j<=m;j++)
    			{
    				cout<<" A["<<i<<"]["<<j<<"]: "<<a[i][j] ;
    
    			}
    	}
    	cout<<"\n";
    	// In ma tran B
    	for(i=0;i<=n;i++)
    	{
    		cout<<"\n";
    		for(j=0;j<=m;j++)
    			{
    				cout<<" B["<<i<<"]["<<j<<"]: "<<b[i][j] ;
    
    			}
    	}
    }
    // Ham tinh toan
    void tinhtoan (int a[MAX][MAX], int b[MAX][MAX],int n, int m)
    {
    	int i,j;
    	int s[MAX][MAX];
    	int p[MAX][MAX];
    	// Phep cong
    	for(i=0;i<=n;i++)
    		for(j=0;j<=m;j++)
    		{
    			s[i][j]= a[i][j] + b[i][j];
    			p[i][j]= a[i][j] * b[i][j];
    		}
    	// In phep cong
    	for(i=0;i<=n;i++)
    	{
    		cout<<"\n";
    		for(j=0;j<=m;j++)
    		{
    			cout<<" S["<<i<<"]["<<j<<"]: "<<s[i][j] ;
    		}
    	} 
    	cout<<"\n";
    	// In phep nhan
    	for(i=0;i<=n;i++)
    	{
    		cout<<"\n";
    		for(j=0;j<=m;j++)
    		{
    			cout<<" P["<<i<<"]["<<j<<"]: "<<p[i][j] ;
    		}
    	} 
    } // Ket thuc ham tinhtoan
    void timgiatrilonnho(int a[MAX][MAX], int n,int m)
    {
    	int i,j;
    	int min,max;
    	min = a[0][0];
    	max = a[0][0];
    	// Tim phan tu lon nhat dong (đến đây mình không hiểu cách chia dòng)
    	for(i=0;i<n;i++)
    		{	
    			if(i > max)
    			cout<<"Phan tu lon nhat cua dong"<<n-1<<": "<<max;
    		}
    	/* Tim phan tu nho nhat dong
    	for(i=0;i<n;i++)
    		for(j=0;j<m;j++)
    		{
    			if(a[i][j] < min)
    				{
    					max = a[i][j];
    					cout<<"\n"<<"Gia tri nho nhat cua dong: "<<min;
    				}
    		}
    	*/
    }
    Cảm ơn mọi người !

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

    Code:
    void timgiatrilonnho(int a[MAX][MAX], int n,int m)
    {
    	int i,j;
    	int min,max;
    	min = a[0][0];
    	max = a[0][0];
    	// Tim phan tu lon nhat dong (đến đây mình không hiểu cách chia dòng)
    	for(i=0;i<n;i++)
    		{	
    			if(i > max)
                            người viết đoạn code này hoàn toàn không có một khái niêm gỉ về mảng
                            đồng thời cũng không biết thế nào là max
    			cout<<"Phan tu lon nhat cua dong"<<n-1<<": "<<max;
    		}
    	/* Tim phan tu nho nhat dong
    	for(i=0;i<n;i++)
    		for(j=0;j<m;j++)
    		{
    			if(a[i][j] < min)
    				{
    					max = a[i][j];
                                            max min tùm lum, người viết có xem lại code của mình chưa?
    					cout<<"\n"<<"Gia tri nho nhat cua dong: "<<min;
    				}
    		}
    	*/
    }
    Trước khi hỏi, chịu khó đọc lại code của mình một chút. Không ai trách bạn viết sai, nhưng viết tùm lum thì là vì lười.

    C Code:
    1. ...
    2.     // Tim phan tu lon nhat va nho nhat dong
    3.   for(i=0;i<n;i++) // tìm trong mỗi dòng
    4.   {
    5.     min = a[i][0]; // cứ mỗi dòng, phải đặt lại trị min/max
    6.     max = a[i][0];
    7.     for (j=1;j<m;j++) // xét mỗi phần tử trong dòng, 0 đã xét rôi, nên bắt đầu từ 1
    8.     {
    9.       if (a[i][j] > max)   max = a[i][j];
    10.       if (a[i][j] < min)   min = a[i][j];
    11.     }
    12.     // sau khi xét xong các pt của dòng, ta có max, min của dòng này
    13.     cout<<"Phan tu lon nhat cua dong "<<i+1<<": "<<max<<"\n";
    14.     cout<<"Phan tu nho nhat cua dong "<<i+1<<": "<<min<<"\n";
    15.   }

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    Hội An
    Bài viết
    42

    uhm, cảm ơn bạn nhiều, do mình mới chỉ viết thử đoạn code nên nghĩ thế thôi, , thanks nhiều !

  4. #4
    Ngày gia nhập
    01 2010
    Nơi ở
    Hà Nội
    Bài viết
    128

    Không phải đâu bạn à . Bạn nên xem lại kiến thực cơ bản đi vì như votichsu đã nói có vẻ bạn chưa biết khái niệm mảng thì phải ! code của bạn thật lủng củng và có thể nói gần như không có nội dung . Những bài này trên 4rum cũng có rất nhiều bạn chịu khó search trên 4rum hoặc google.
    P/s: khuyến khích nên tìm bằng google

  5. #5
    Ngày gia nhập
    03 2009
    Nơi ở
    Hội An
    Bài viết
    42

    Mình cảm ơn mọi người, đúng là mình chưa hiểu rõ lắm về cách hoạt động của mảng. :(

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

  1. ADO.NET Insert 1 ký tự vào vị trí 1 dòng thẳng hàng với ký tự gạch chân dòng trên trong Richtextbox
    Gửi bởi gacongnghiep_cs trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 22-08-2013, 06:17 PM
  2. Kỹ thuật C Giúp viết hàm sửa thông tin trên từng dòng trong file txt
    Gửi bởi nguyentienlc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 01-12-2012, 09:53 PM
  3. Cần giúp về lưu các cột dòng trên Listview xuống CSDL??
    Gửi bởi dvminhpro45 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 24-04-2011, 04:17 PM
  4. Tạo dòng chữ chạy trên nền Winform.Giúp mình.
    Gửi bởi GPrecious trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 15-02-2011, 09:51 AM
  5. Nên viết 1 dòng code dài trên 1 dòng hay trên nhiều dòng??
    Gửi bởi longtth trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 25-10-2010, 01:07 AM

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