Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Bài tập sắp xong,còn 1 chút rắc rối lớn, nhờ các bạn giúp cho.Cám ơn!!

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Wink Bài tập sắp xong,còn 1 chút rắc rối lớn, nhờ các bạn giúp cho.Cám ơn!!

    Mình có 1 bài tập này:
    Viết chương trình nhập vào 1 dãy số nguyên a1,a2,....,an Hãy tìm dãy con liên tiếp có tổng lớn nhất.
    Ví dụ nhập vào dãy: 4 -5 7 -6 1 -2 3 -4
    Thì xuất là:4 -5 7 .
    Mình đã làm được 1 phần của bài như sau:
    Code:
    #include<conio.h>
    #include<iostream.h>
    void nhap();
    void tong();
    int n,i,a[100];
    void main()
    {
    clrscr();
    nhap();
    tong();
    getch();
    }
    void nhap()
    {
    cout<<"Nhap vao do dai cua day so: ";
    cin>>n;
    cout<<"Nhap vao cac so:";
    for(i=1;i<=n;i++)
    cin>>a[i];
    }
    void tong()
    {
    int tong;
    for(i=1;i<=n-2;i++)
    {
    tong=a[i]+a[(i+1)]+a[(i+2)];
    cout<<"Tong 3 so lien tiep: "<<tong<<endl;
    }
    }
    Với đoạn code trên , ví dụ như khi mình nhập các số:4 -5 7 -6 1 -2 3 -4
    thì máy sẽ tính ra 6 kết quả :(4+-5+7)=6
    (-5+7+-6)=-4
    (7+-6+1)=2
    (-6+1+-2)=-7
    (1+-2+3)=2
    (-2+3+-4)=3
    xuất ra các kết quả như trên nhưng còn so sánh các kết quả với nhau để xuất ra 3 số cho tổng lớn nhất thì mình thua !!! xin giúp đỡ!!!

    Lưu ý, để code trong tag code. Đọc Nội quy để biết thêm chi tiết!

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mình nhớ mình mới làm cho bạn bài này xong mà ? Mà thôi, theo mình bạn khoang hãy làm bài nãy đã, mình edit lại + comment rồi, bạn chịu khó đọc lại đi rồi hãy làm.
    PHP Code:
    #include <iostream>// nên xài <iostream> #include<iostream.h>

    using std::cout;
    using std::cin;
    using std::endl;

    int nhap(int a[]);
    void tong(int a[], int);
    //Tránh sữ dụng global : int n,i,a[100];

    int main()// nên dùng int main void main()
    {
        
    //để làm gì ? clrscr();
        
    int arr[100];
        
    int size;
        
    size nhap(arr);
        
    tong(arrsize);
        
    //getch();
            
    return 0;
    }
    //Bản xài void thì mình return số lượng phần tử ở hàm này
    int nhap(int a[])
    {
        
    int n;//Mình khai báo n ở đây
        
    cout<<"Nhap vao do dai cua day so: ";
        
    cin>>n;
        
    cout<<"Nhap vao cac so:";
        
    // Tại sao mãng lại bắt đầu từ 1, i khai báo hồi nào vậy ?
        // for(i=1;i<=n;i++)
            //cin>>a[i];
        
    for(int x 0n; ++x)
        {
            
    std::cin >> a[x];
        }
        return 
    n;
    }

    void tong(int a[], int n)
    {
        
    int tong;
        
    //tổng bằng mấy?, chưa khởi tạo làm sao + được ?
        
    tong 0;
        
    //i khai báo chưa vậy ?
        //for(i=1;i<=n-2;i++)
        //{
            //chỗ này cú pháp gì đây 
            //tong=a[i]+a[(i+1)]+a[(i+2)];
        //cout<<"Tong 3 so lien tiep: "<<tong<<endl;
        
    for(int x 03; ++x)
            
    tong a[x] + a[x+1] + a[x+2];


  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    4

    Cho mình ké đề tài này với (sao mình vào gửi đề tài mới kô được (nó báo là phải đánh 10 kí tự trở lên (trong khi mình đánh gần cả trăm kt)))

    Thắc mắc về con trỏ
    Cái đoạn này mình in ra thì đúng
    Code:
    #include <iostream.h>
    
    void main ()
    {
    	int A[5], *p;
    	A[0] = 5;
    	p = A;
    	cout << ""<<p[0]<<"";
    }
    Còn cái này thì nó lỗi
    Code:
    #include <iostream.h>
    
    void main ()
    {
    	int A[5][5], *p;
    	A[0][0] = 5;
    	p = *A;
    	cout << ""<<p[0][0]<<"";
    }
    Giúp mình với nhé!!!

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Coi cái này rùi suy nghĩ thử xem T_T :
    PHP Code:
    #include <iostream>
    int main(){

      
    int a[5][5] = {};

      for(
    int x 05; ++x){
        for(
    int y 05; ++y){
          
    std::cout << *(a[x] + y)
               << (*(
    x))[y]
               << *((*(
    x)) + y)
               << *(&
    a[0][0] + 5*y);
        }
        
    std::cout << '\n';
      }
      return 
    0;

    Vậy mình hỏi bạn tại sao cái đầu lại đúng nhỉ ?

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Opps, mình hơi phức tạp vấn đề 1 tí, mà thôi nhân tiện hiểu 1 thì thành hiểu 2, càng tốt hì hì :
    PHP Code:
    #include <iostream>
    int main(){

      
    int a[5][5] = {};
      
    int **p;
      
    cout << p[0][0] << '\n';
      

    Ý của bạn là đây, suy nghĩ thật kĩ nha rùi mới hỏi tiếp đó !

  6. #6
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Mặc định Bài tập sắp xong,còn 1 chút rắc rối lớn, nhờ các bạn giúp cho.Cám ơn!!

    Sửa lại tí nha .

    Code:
    #include <iostream.h>
    
    void main ()
    {
    	int A[5][5], *p;
    	A[0][0] = 5;
    	p = *A;
    	cout << ""<<*p<<"";
    }
    Do thế này : bạn gán p=*A tức là p đang trỏ đến phần tử A[0][0] . Toán tử chỉ số [] cho phép bạn thao tác với con trỏ trỏ đến phần tử trong mảng 1 chiều thôi . Còn 2 chiều trở lên phải dùng toán tử cộng trừ trên con trỏ .

  7. #7
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    #include <iostream>
    int main(){

    int a[5][5] = {};
    int **p;
    cout << p[0][0] << '\n';

    }
    Thanks sieuphuong, trời lạnh quá nên anh hơi nóng đầu haha T_T

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Bạn xem đoạn này sẽ hiểu rõ hơn ý sieuphuong :
    PHP Code:
    #include <iostream>
    int main(){

      
    int a[5][5] = {};
      
    //2 thằng ở dưới là y chang nhau
      //int *p = *(a + 0);
      
    int *a[0];
      
    cout << *<< '\n';
      
      


  9. #9
    Ngày gia nhập
    01 2008
    Bài viết
    4

    Xong,hihi, cám ơn 2 bạn nha, mình hiểu rồi
    À, nhân tiện mình cám ơn luôn dreaminess
    nhờ "vọc" vào trang này mới biết mặt mũi con trỏ http://forums.congdongcviet.com/showthread.php?t=3982
    Đã được chỉnh sửa lần cuối bởi º┴¶† HACK †¶┴º : 02-02-2008 lúc 11:30 AM. Lý do: sai thì sửa chứ hỏi gì

  10. #10
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Cám ơn bạn ROX_ROOK nhìu lắm . Bài bạn gửi cho mình là bài sửa, vậy phiền bạn chỉ cho mình cách để so sánh các tổng đi. Nói thật nhé,mình mới học Kỹ Thuật Lập Trình thôi, do đó mình còn mất căn bản lắm lắm. Việc rút các tổng ra và so sánh chúng với nhau mình ko bít làm .Nhờ bạn chỉ giùm với.

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

  1. Kỹ thuật C Mọi người ơi, giúp mình 1 chút.
    Gửi bởi Hoangnam08 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 03-03-2013, 08:43 AM
  2. Mình muốn hỏi chút ai giúp mình về cách làm một form giống vậy
    Gửi bởi phamvanluu2 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 11-08-2012, 08:01 PM
  3. Bài tập C++ Giúp m chút
    Gửi bởi son.o0o trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 04-04-2012, 06:38 PM
  4. Đọc số thành chữ trên C. Các bác giúp em chút về bài này
    Gửi bởi beanlc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 09-09-2011, 06:43 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