Free Host cho cộng đồng

Đang tải dữ liệu...
Trang 1 của 9 123 ... CuốiCuối
Kết quả 1 đến 10 của 85
  1. #1
    Senior Member Lá Lúa's Avatar
    Ngày tham gia
    Mar 2009
    Đang ở
    Cánh đồng xa
    Bài viết
    1,158
    Cảm ơn
    176
    Thanked 203 Times in 120 Posts
    1
    None
     
     
    Số lần cộng|trừ: 1 lần

    Mặc định Ai thích viết C/C++ thì vào hen ^^

    Chủ Đề: Mặc định Ai thích viết C/C++ thì vào hen ^^

    ►Lượt Xem: 4606 ►Trả Lời: 84
    ►Chia Sẽ:
    ►Ngày Gửi: 30-10-2010 ►Đánh Giá: Sao

    Bài đầu tiên: Cho 1 mảng có n số nguyên, viết chương trình in ra số nguyên lớn nhất trong mảng

    Xem thêm chủ đề ngẫu nhiên :
    Đừng dễ gật đầu vào bất cứ điều gì !!!
    Không được trách ai. Nếu thấy sai chỉ tự trách mình. Hỏi thật kĩ, hiểu thật kĩ rồi hãy làm. Muốn làm nhanh thì chấp nhận có sai sót. Hãy tìm nguyên nhân, sửa chữa và lại quyết tâm hơn.

  2. #2
    Member TH_studio's Avatar
    Ngày tham gia
    Mar 2010
    Đang ở
    Computer Science -- University of Science
    Bài viết
    88
    Cảm ơn
    19
    Thanked 22 Times in 13 Posts
    1
    None
     
     
    Số lần cộng|trừ: 1 lần

    Smile Ðề: Ai thích viết C/C++ thì vào hen ^^


    Trích dẫn Gửi bởi Lá Lúa Xem bài viết
    Bài đầu tiên: Cho 1 mảng có n số nguyên, viết chương trình in ra số nguyên lớn nhất trong mảng
    Vì đề yêu cầu là tìm số nguyên lớn nhất trong mảng có n phần tử rồi xuất ra.Ở đây mình cho người dùng nhập thoải mái mà không cần phải thông báo trước số lượng phần tử trong mảng(dùng STL với lớp vector).Tiếp đó mình dùng hàm có sẵn trong algorithm để tính toán cho nhanh.
    Mã:
    #include < iostream >
    #include < algorithm >
    #include < vector >
    using namespace std;
    
    void main()
    {
    	vector< int > mangInt;
    	int temp;
    	cout << "Nhap 1 so nguyen (nhan q de thoat) : ";
    	while (cin >> temp)
    	{
    		mangInt.push_back(temp);
    		cout << "Nhap 1 so nguyen (nhan q de thoat) : ";
    	}
    	cout << "Gia tri lon nhat trong mang la : " << *(max_element(mangInt.begin(), mangInt.end())) << endl;
    }
    Đó là code dành cho những bạn nào đã am hiểu khá sâu về C/C++ và các thư viện bổ trợ.
    Nếu bạn là người mới làm quen với C/C++ thì có thể làm theo cách truyền thống như dưới đây.
    Mã:
    #include < iostream >
    using namespace std;
    
    void main()
    {
    	int mangInt[10]; // n = 10
    	int i, max;
    	for (i = 0; i < 10; i++)
    	{
    		cout << "Nhap gia tri thu " << i + 1 << " : ";
    		cin >> mangInt[i];
    	}
    	max = mangInt[0];
    	for (i = 1; i < 10; i++)
    	{
    		if (mangInt[i] > max)
    			max = mangInt[i];
    	}
    	cout << "Gia tri lon nhat cua mang la : " << max << endl;
    }
    Nếu bạn đã học về con trỏ và cấp phát động thì các bạn có thể làm như sau
    Mã:
    #include < iostream >
    using namespace std;
    
    void main()
    {
    	int i, n, max;
    	cout << "Nhap so luong phan tu cua mang : ";
    	cin >> n;
    	int *mangInt = new int[n];
    	for (i = 0; i < n; i++)
    	{
    		cout << "Nhap gia tri thu " << i + 1 << " : ";
    		cin >> mangInt[i];
    	}
    	max = mangInt[0];
    	for (i = 1; i < n; i++)
    	{
    		if (mangInt[i] > max)
    			max = mangInt[i];
    	}
    	cout << "Gia tri lon nhat cua mang la : " << max << endl;
    	delete[] mangInt; // Rat quan trong, thieu lenh nay doi luc gay dung chuong trinh
    }

    +1 EXP
    Lần sửa cuối bởi TH_studio, ngày 31-10-2010 lúc 02:10 AM. Lý do: Update
    Tầm nhìn ta thật ngắn mà đã thấy bao thứ để làm -- Alan Turing

  3. #3
    Member TH_studio's Avatar
    Ngày tham gia
    Mar 2010
    Đang ở
    Computer Science -- University of Science
    Bài viết
    88
    Cảm ơn
    19
    Thanked 22 Times in 13 Posts
    1
    None
     
     
    Số lần cộng|trừ: 1 lần

    Mặc định Ðề: Ai thích viết C/C++ thì vào hen ^^


    Bây giờ đến lượt mình sẽ ra đề.Cho người dùng nhập 1 mảng số nguyên.Thực hiện việc sắp xếp mảng đó theo chiều tăng dần từ trái qua phải và đảm bảo không có giá trị trùng nhau (chú ý người dùng có thể nhập giá trị trùng nhau).Ví dụ:
    - Người dùng nhập : 0 1 5 -1 9 3 6 1 8
    ->Sau khi sắp xếp : -1 0 1 3 5 6 8 9

    +1 EXP
    Tầm nhìn ta thật ngắn mà đã thấy bao thứ để làm -- Alan Turing

  4. #4
    Senior Member Lá Lúa's Avatar
    Ngày tham gia
    Mar 2009
    Đang ở
    Cánh đồng xa
    Bài viết
    1,158
    Cảm ơn
    176
    Thanked 203 Times in 120 Posts
    1
    None
     
     
    Số lần cộng|trừ: 1 lần

    Mặc định Ðề: Ai thích viết C/C++ thì vào hen ^^


    Trích dẫn Gửi bởi TH_studio Xem bài viết
    Bây giờ đến lượt mình sẽ ra đề.Cho người dùng nhập 1 mảng số nguyên.Thực hiện việc sắp xếp mảng đó theo chiều tăng dần từ trái qua phải và đảm bảo không có giá trị trùng nhau (chú ý người dùng có thể nhập giá trị trùng nhau).Ví dụ:
    - Người dùng nhập : 0 1 5 -1 9 3 6 1 8
    ->Sau khi sắp xếp : -1 0 1 3 5 6 8 9
    Mã nguồn PHP:
    #include "stdafx.h"
    #include "stdio.h"
    #include "conio.h"
    #include "math.h"
    #define size 100
    void main()
    {
        
    int nA[size];
        
    int temp;
        
    int i,j;
        
    printf("Nhap n: ");
        
    scanf("%d",&n);
        for(
    i=0;i<n;i++){
                       
    printf("Nhap mang: ");
                       
    scanf("%d",&A[i]);
        }
        for(
    i=0;i<n-1;i++){
            for(
    j=i+1;j<n;j++){
                if(
    A[i]>A[j]){
                    
    temp A[i];
                    
    A[i] = A[j];
                    
    A[j] = temp;
                }
            }
        }
        for(
    i=0;i<n;i++){
            
    printf("%d",A[i]);
        }

    Để trong thẻ code thì mất một đoạn code, nên để trong PHP code vậy

    Lần sửa cuối bởi Lá Lúa, ngày 31-10-2010 lúc 09:13 AM.

  5. #5
    Senior Member Lá Lúa's Avatar
    Ngày tham gia
    Mar 2009
    Đang ở
    Cánh đồng xa
    Bài viết
    1,158
    Cảm ơn
    176
    Thanked 203 Times in 120 Posts
    1
    None
     
     
    Số lần cộng|trừ: 1 lần

    Mặc định Ðề: Ai thích viết C/C++ thì vào hen ^^


    Bài tiếp theo nhé ^^
    Viết chương trình nhập vào một số nguyên và kiểm tra số đó có phải là số nguyên tố hay không.

    Đừng dễ gật đầu vào bất cứ điều gì !!!
    Không được trách ai. Nếu thấy sai chỉ tự trách mình. Hỏi thật kĩ, hiểu thật kĩ rồi hãy làm. Muốn làm nhanh thì chấp nhận có sai sót. Hãy tìm nguyên nhân, sửa chữa và lại quyết tâm hơn.

  6. #6
    Member TH_studio's Avatar
    Ngày tham gia
    Mar 2010
    Đang ở
    Computer Science -- University of Science
    Bài viết
    88
    Cảm ơn
    19
    Thanked 22 Times in 13 Posts
    1
    None
     
     
    Số lần cộng|trừ: 1 lần

    Mặc định Ðề: Ai thích viết C/C++ thì vào hen ^^


    Bạn đọc lại yêu cầu đề bài của mình nha'!Đoạn code của bạn mới chỉ sắp xếp thôi chứ chưa có giải quyết vấn đề dữ liệu trùng lặp!

    Tầm nhìn ta thật ngắn mà đã thấy bao thứ để làm -- Alan Turing

  7. #7
    Senior Member Lá Lúa's Avatar
    Ngày tham gia
    Mar 2009
    Đang ở
    Cánh đồng xa
    Bài viết
    1,158
    Cảm ơn
    176
    Thanked 203 Times in 120 Posts
    1
    None
     
     
    Số lần cộng|trừ: 1 lần

    Mặc định Ðề: Ai thích viết C/C++ thì vào hen ^^


    Xin lỗi anh nha!!!
    Em không chú ý đọc kĩ đề
    Code mới đây anh, suy nghĩ không ra giải pháp và thế là lên google search, và biết được 2 câu code hay mà em chưa biết:
    1. if (a[i]>a[j]) a[i]^=a[j]^=a[i]^=a[j];
    //nếu a[i]>a[j] thì đổi chỗ
    // dùng xor bit để đổi chỗ cho nhanh, thao tác trên bit thì nhanh hơn.
    2. else if (a[i]==a[j]) a[j--]=a[--n];
    //nếu trùng nhau thì xóa bỏ a[j]
    Code mới em ghi lại:
    Mã nguồn PHP:
    #include "stdafx.h" 
    #include "stdio.h" 
    #include "conio.h" 
    #include "math.h" 
    #define size 100 
    void main() 

        
    int nA[size]; 
        
    int i,j,temp
        
    printf("Nhap n: "); 
        
    scanf("%d",&n); 
        for(
    i=0;i<n;i++){ 
                       
    printf("Nhap mang: "); 
                       
    scanf("%d",&A[i]); 
        } 
        for(
    i=0;i<n-1;i++){ 
            for(
    j=i+1;j<n;j++){ 
                if(
    A[i]>A[j]){ 
                    
    temp A[i]; 
                    
    A[i] = A[j]; 
                    
    A[j] = temp
                }
                else
                    if(
    A[i]==A[j]){
                        
    n=n-1;
                        
    A[j]=A[n];
                        
    j=j-1;
                    }
            } 
        } 
        for(
    i=0;i<n;i++){ 
            
    printf("%d",A[i]); 
        } 


    +1 EXP
    Đừng dễ gật đầu vào bất cứ điều gì !!!
    Không được trách ai. Nếu thấy sai chỉ tự trách mình. Hỏi thật kĩ, hiểu thật kĩ rồi hãy làm. Muốn làm nhanh thì chấp nhận có sai sót. Hãy tìm nguyên nhân, sửa chữa và lại quyết tâm hơn.

  8. #8
    Giấc mơ ngọt ngào sweet_dream4818's Avatar
    Ngày tham gia
    Mar 2009
    Đang ở
    Tập đoàn CDD
    Bài viết
    2,194
    Cảm ơn
    304
    Thanked 719 Times in 374 Posts
    Blog Entries
    8
    2
    Normal
     
     
    Số lần cộng|trừ: 10 lần

    Mặc định Ðề: Ai thích viết C/C++ thì vào hen ^^


    Mấy anh cứ code thoải mái,em thì chưa có học,nhưng chắc từ từ cũng học,cứ code code chừng em vô cop cop

    "Đừng than phiền về những điều bạn chưa có.Hãy vui với những điều bạn đang có"
    -- H.Stanley Judd --

  9. #9
    Senior Member Lá Lúa's Avatar
    Ngày tham gia
    Mar 2009
    Đang ở
    Cánh đồng xa
    Bài viết
    1,158
    Cảm ơn
    176
    Thanked 203 Times in 120 Posts
    1
    None
     
     
    Số lần cộng|trừ: 1 lần

    Mặc định Ðề: Ai thích viết C/C++ thì vào hen ^^


    ......., thế thì em cứ xem đi, chưa học thì giờ học trước, cái gì không hiểu thì hỏi, có anh TH_Studio chỉ mà lo gì

    Đừng dễ gật đầu vào bất cứ điều gì !!!
    Không được trách ai. Nếu thấy sai chỉ tự trách mình. Hỏi thật kĩ, hiểu thật kĩ rồi hãy làm. Muốn làm nhanh thì chấp nhận có sai sót. Hãy tìm nguyên nhân, sửa chữa và lại quyết tâm hơn.

  10. #10
    Member TH_studio's Avatar
    Ngày tham gia
    Mar 2010
    Đang ở
    Computer Science -- University of Science
    Bài viết
    88
    Cảm ơn
    19
    Thanked 22 Times in 13 Posts
    1
    None
     
     
    Số lần cộng|trừ: 1 lần

    Smile Ðề: Ai thích viết C/C++ thì vào hen ^^


    Trích dẫn Gửi bởi Lá Lúa Xem bài viết
    Xin lỗi anh nha!!!
    Em không chú ý đọc kĩ đề
    Code mới đây anh, suy nghĩ không ra giải pháp và thế là lên google search, và biết được 2 câu code hay mà em chưa biết:
    1. if (a[i]>a[j]) a[i]^=a[j]^=a[i]^=a[j];
    //nếu a[i]>a[j] thì đổi chỗ
    // dùng xor bit để đổi chỗ cho nhanh, thao tác trên bit thì nhanh hơn.
    2. else if (a[i]==a[j]) a[j--]=a[--n];
    //nếu trùng nhau thì xóa bỏ a[j]
    Code mới em ghi lại:
    Mã nguồn PHP:
    #include "stdafx.h" 
    #include "stdio.h" 
    #include "conio.h" 
    #include "math.h" 
    #define size 100 
    void main() 

        
    int nA[size]; 
        
    int i,j,temp
        
    printf("Nhap n: "); 
        
    scanf("%d",&n); 
        for(
    i=0;i<n;i++){ 
                       
    printf("Nhap mang: "); 
                       
    scanf("%d",&A[i]); 
        } 
        for(
    i=0;i<n-1;i++){ 
            for(
    j=i+1;j<n;j++){ 
                if(
    A[i]>A[j]){ 
                    
    temp A[i]; 
                    
    A[i] = A[j]; 
                    
    A[j] = temp
                }
                else
                    if(
    A[i]==A[j]){
                        
    n=n-1;
                        
    A[j]=A[n];
                        
    j=j-1;
                    }
            } 
        } 
        for(
    i=0;i<n;i++){ 
            
    printf("%d",A[i]); 
        } 


    Cách trên đúng rồi!Ở đây ta chỉ dùng cách đơn giản nhất thôi,còn nhiều giải thuật sắp xếp khác vô cùng nhanh.
    Mình cung cấp thêm 1 đoạn code dùng các hàm có trong STL (đang ngâm cứu nên lấy ra vận dụng luôn)
    Mã nguồn PHP:
    #include <iostream>
    #include <vector>
    #include <iterator>
    #include <algorithm>
    using namespace std;

    void main()
    {
        
    vector<intmang;
        
    int temp;

        
    cout << "Nhap 1 so nguyen (nhan q de thoat) : ";
        while (
    cin >> temp)
        {
            
    mang.push_back(temp);
            
    cout << "Nhap 1 so nguyen (nhan q de thoat) : ";
        }
        
    sort(mang.begin(), mang.end());
        
    ostream_iterator<intcharout (cout" ");
        
    copy(mang.begin() , unique(mang.begin(), mang.end()), out);
        
    cout << endl;

    Mà hình như bạn không thích dùng C++ thì phải, code bạn đều viết bằng C.

    +1 EXP
    Tầm nhìn ta thật ngắn mà đã thấy bao thứ để làm -- Alan Turing

Trang 1 của 9 123 ... CuốiCuối

Thông tin về chủ đề này

Users Browsing this Thread

Có 1 người đang xem chủ đề. (0 thành viên và 1 khách)

Khách tìm thấy trang này qua các từ khóa

vcl.h c

20-11-2011

Đánh dấu

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
THÔNG BÁO CẦN BIẾT
HỖ TRỢ TRỰC TUYẾN
HƯỚNG DẪN