Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 24 kết quả

Đề tài: In ra màn hình theo thứ tự tăng dần các số nhập vào. Chỉ được dùng thêm hai biến phụ

  1. #1
    Ngày gia nhập
    12 2010
    Nơi ở
    Đà Nẵng
    Bài viết
    11

    Mặc định In ra màn hình theo thứ tự tăng dần các số nhập vào. Chỉ được dùng thêm hai biến phụ

    Mây huynh giúp giùm em

    P/s: không sử dụng mảng

  2. #2
    Ngày gia nhập
    02 2011
    Nơi ở
    hà nội
    Bài viết
    131

    C Code:
    1. void swap (int*a, int*b){
    2.    int tam;
    3.    if(a>b){
    4.       tam=*a;
    5.       *a=*b;
    6.       *b=tam;
    7.    }
    8. }
    phần nhập bạn không dùng mảng thì dùng con trỏ ý
    C Code:
    1. for(i=0; i<n; i++){
    2.    printf("phan tu thu % d la: ", i+1);
    3.    scanf("%d", *(p+i));
    4. }

    không bik làm như vậy có được không nhỉ
    Chia tay bình minh

  3. #3
    Ngày gia nhập
    12 2010
    Nơi ở
    Đà Nẵng
    Bài viết
    11

    Thank bạn, nhưng mà sắp xếp 3 sô nguyên không phải 2 số
    (Câu hỏi của mình bị thiếu :P)

  4. #4
    Ngày gia nhập
    02 2011
    Nơi ở
    Hà Nội
    Bài viết
    67

    Trích dẫn Nguyên bản được gửi bởi devildn132 Xem bài viết
    Mây huynh giúp giùm em

    P/s: không sử dụng mảng
    Bạn cho cái đề nó rõ ràng hơn một chút đi. Quy cách ví dụ như

    Yêu cầu: sắp xếp các số theo chiều tằng dần
    Input: mảng N số nguyên nhập vào từ bàn phím
    Output: mảng đã sắp xếp

    Nhưng bài của bạn yêu cầu nhập vào mấy số? nếu nhập vào tẹt ga thì không lưu trong mảng mà chỉ dùng hai biến phụ thì lấy cơ sở gì mà sắp xếp?
    Đã được chỉnh sửa lần cuối bởi first_pace : 09-03-2011 lúc 01:22 PM.
    Vấn đề không phải là bước nhanh, mà là luôn luôn bước

  5. #5
    Ngày gia nhập
    12 2010
    Nơi ở
    Đà Nẵng
    Bài viết
    11

    Input: 3 số nguyên a,b,c nhập từ bàn phím.
    Output:In ra màn hình thứ tự tăng dần các số.
    Yêu cầu bài toán là như vậy.
    Do mình mới học C tời phân điều kiện và vòng lặp nên chưa dung mảng vào bài toán này được.

    Thanks.

  6. #6
    Ngày gia nhập
    02 2011
    Nơi ở
    Hà Nội
    Bài viết
    67

    Mặc định In ra màn hình theo thứ tự tăng dần các số nhập vào. Chỉ được dùng thêm hai biến phụ

    Trích dẫn Nguyên bản được gửi bởi devildn132 Xem bài viết
    Input: 3 số nguyên a,b,c nhập từ bàn phím.
    Output:In ra màn hình thứ tự tăng dần các số.
    Yêu cầu bài toán là như vậy.
    Do mình mới học C tời phân điều kiện và vòng lặp nên chưa dung mảng vào bài toán này được.

    Thanks.
    Ý tưởng:
    - nhập 3 số a, b, c bất kỳ
    - tìm cách cho a là số bé nhất, b bé nhì, c lớn nhất
    • B1: so sánh a với b. nếu a>b đổi giá trị 2 thằng cho nhau
    • B2: so sánh a với c. làm tương tự, nếu a>c thì đổi giá trị a và . Sau B2 thì a là nhỏ nhất
    • B3: tương tự, so b với c nếu b>c thì đổi giá trị b và c cho nhau

    Như vậy ta đã có dãy a, b, c tăng dần.
    C Code:
    1. #include <stdio.h>
    2. #inlcude <conio.h>
    3.  
    4. int main(){
    5.     int a, b, c; // 3 số nguyên
    6.     int temp;// biến tạm thời để giúp đổi chỗ (temporary)
    7.  
    8.     printf("Enter 3 integer a, b, c: ");
    9.     scanf("%d %d %d", &a, &b, &c);
    10.  
    11.     // chuyển số bé nhất vào a
    12.     if(a>b){
    13.         temp=a;
    14.         a=b;
    15.         b=temp;
    16.     }
    17.  
    18.     if(a>c){
    19.         temp=a;
    20.         a=c;
    21.         c=temp;
    22.     }
    23.  
    24.     // chuyển số bé nhì vào b
    25.    if(b>c){
    26.         temp=b;
    27.         b=c;
    28.         c=temp;
    29.     }
    30.  
    31.     printf("\n%d    %d    %d", a, b, c);
    32.    
    33.     getch();
    34.     return 0;
    35. }

    p/s: do bạn chưa học về hàm nên mình đành phải viết thế này. Nếu không viết riêng một cái hàm đổi chỗ sẽ gọn hơn.
    Vấn đề không phải là bước nhanh, mà là luôn luôn bước

  7. #7
    Ngày gia nhập
    12 2010
    Nơi ở
    Đà Nẵng
    Bài viết
    11

    Thanks bạn nha^^

  8. #8
    Ngày gia nhập
    02 2011
    Nơi ở
    hà nội
    Bài viết
    131

    Trích dẫn Nguyên bản được gửi bởi devildn132 Xem bài viết
    Thank bạn, nhưng mà sắp xếp 3 sô nguyên không phải 2 số
    (Câu hỏi của mình bị thiếu :P)
    ko. bài của mình là sắp xếp nhiều số chứ ko pải 2 hay 3 số ;p
    Chia tay bình minh

  9. #9
    Ngày gia nhập
    03 2009
    Nơi ở
    %appdata%\Temp
    Bài viết
    819

    Chẳng dùng biến tạm nào luôn
    C Code:
    1. printf("%d %d %d",(a<b?a:b)<c?(a<b?a:b):c, a+b+c - (a<b?a:b)<c?(a<b?a:b):c - (a>b?a:b)>c?(a>b?a:b):c, (a>b?a:b)>c?(a>b?a:b):c);
    .::[The best way to predict the future is to invent it]::.
    __________________________________________________ _ - Alan Kay -

  10. #10
    Ngày gia nhập
    02 2011
    Bài viết
    21

    Trích dẫn Nguyên bản được gửi bởi chiga9x Xem bài viết
    ko. bài của mình là sắp xếp nhiều số chứ ko pải 2 hay 3 số ;p
    Nhiều số mà dùng if else thì....Mệt đấy. Thôi dùng function nhá.Có rất nhiều chiến lược sắp xếp 1 mảng thành mảng tăng dần như Select sort, insert sort... Hoặc đơn giản nhất như buble sort mình trình bày function đơn giản nhất nhé:
    PHP Code:
    /*
     * sort.cpp
     *
     *  Created on: Mar 12, 2011
     *      Author: khangphamngoc
     */
    #include <iostream>
    using namespace std;
    void nhap(int *c,int n){
        
    int i;
        for(
    i=1;i<=n;i++){
            
    cout<<"\nNhap phan tu thu "<<i<<":";
            
    cin>>c[i];
        }
    }
    void swap(int &a,int &b)
    {
      
    int tg;
      
    tg=a;
      
    a=b;
      
    b=tg;
    }
    void sort(int *c,int n)
    {
      
    int i,j;
      for(
    i=1;i<n;i++)
      {
          for(
    j=i+1;j<=n;j++)
              if(
    c[i]>c[j]){
                  
    swap(c[i],c[j]);
              }
      }
      
    }
    int main(){
        
    int *c,n;
        
    cout<<"Nhap so phan tu cua day:";
        
    cin>>n;
        
    c=new int[n+1];
        
    nhap(c,n);
        
    sort(c,n);
        
    cout<<"\nDay da sap:";
        for(
    int i=1;i<=n;i++)
            
    cout<<c[i];
        return 
    0;

    Còn các chiến lược sắp xếp khác mình sẽ giới thiệu sau.Good luck!

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

  1. Thêm mã nhân viên tăng dần và theo đơn vị
    Gửi bởi mrlonely0390 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 12-10-2013, 02:03 PM
  2. dùng linq to sql truy vấn asp.net mvc 4 xóa id theo biến var delete_999 và lưu vào database
    Gửi bởi duykim2308 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 18-07-2013, 10:53 PM
  3. Lập trình C Làm cách nào để hoán vị 2 số nguyên mà không dùng thêm biến thứ 3?
    Gửi bởi nguyenphuongcntv trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 23-09-2011, 10:10 PM
  4. làm thế nào để biết người dùng cuộn nút giữa theo chiều nào?
    Gửi bởi GaPro trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 07-04-2011, 12:25 PM
  5. biến numeric tăng theo năm?
    Gửi bởi nguyenletri trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 11-03-2010, 01:41 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