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

Đề tài: đổi cái nhị phân đúng rồi mà nó in thừa

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

    Mặc định đổi cái nhị phân đúng rồi mà nó in thừa

    code đây
    Code:
    #include<stdio.h>
    #include<conio.h>
    int nhiphan(int n)
    {
         int mangnp[50], i=1;
         while (n>0)
               {
                    if (n%2==0) mangnp[i]=0;
                    else mangnp[i]=1;
                    n=n/2; i=i+1;
               }
         for (i;i>=1;i=i-1)
            printf("%d",mangnp[i]);
    }
    int main()
    {
    	unsigned int n;
        printf("   Chuong trinh doi so thap phan sang nhi phan!\n");
    	printf("Nhap so can chuyen doi: "); scanf("%d", &n);
        nhiphan(n);
    	getch();
    }
      in thừa kết quả đằng trước mà ko hỉu tại sao, pro nào chỉ giáo với
    (:-)??

  2. #2
    Ngày gia nhập
    02 2012
    Nơi ở
    Đà Nẵng
    Bài viết
    2

    Code:
    #include<stdio.h>
    #include<conio.h>
    int nhiphan(int n)
    {
         int mangnp[50], i=0;
         while( n > 0)
               {
                    if (n%2==0)
                    {
                     mangnp[i]=0;
                     }
                    else
                     { 
                     mangnp[i]=1;
                     }
                    n=n/2;
                    i=i+1;
               }
               i-=1;
         for (;i>=0;i--)
           {
            printf("%d",mangnp[i]);
            
           }
         
    }
    int main()
    {
    	unsigned int n;
        printf("Chuong trinh doi so thap phan sang nhi phan!\n");
    	printf("Nhap so can chuyen doi: ");
        scanf("%d",&n);
    	printf("\nDang nhi phan: ",n);
        nhiphan(n);
    	getch();
    }
    Em có sửa một vài đoạn bác xem lại thử !!
    thứ nhất là tại chổ
    Code:
    int mangnp[50], i=1;
    Mảng trong C bắt đầu với vị trí bằng 0, dùng 1 cũng không sao nhưng dùng 0 cho nó chuẩn.
    Với tại:
    Code:
         int mangnp[50], i=1;
         while (n>0)
               {
                    if (n%2==0) mangnp[i]=0;
                    else mangnp[i]=1;
                    n=n/2; i=i+1;
               }
         for (i;i>=1;i=i-1) //fadfddddddddddddddddddddddddddddddddddddddddd
            printf("%d",mangnp[i]);
    biến i lúc chương trình thoát câu lệnh while mang giá trị là 4 !! nó sẽ load 1 giá trị nằm trong 1 cái ô nhớ mangnp[4] để in lên....
    Nếu bác lại tò mò là cái giá trị ở ô nhớ mangnp[4] ở đâu mà có thì em không dám chắc nói đúng nên xin phép không chém gió...
    Đã được chỉnh sửa lần cuối bởi songhy : 15-01-2013 lúc 10:38 PM.

  3. #3
    Ngày gia nhập
    03 2012
    Bài viết
    27

    Mặc định Mảng có n phần tử là từ A[0] ... A[n-1] nhé bạn

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. void nhiphan(int n)
    4. {
    5.      int mangnp[50], i=0;
    6.      
    7.      while (n>0)
    8.      {
    9.         if (n%2==0) mangnp[i]=0;
    10.         else mangnp[i]=1;
    11.         n=n/2;
    12.         i=i+1;
    13.      }
    14.     for (int j=i-1;j>=0;j--)
    15.         printf("%d",mangnp[j]);
    16. }
    17. int main()
    18. {
    19.     unsigned int n;
    20.     printf("   Chuong trinh doi so thap phan sang nhi phan!\n");
    21.     printf("Nhap so can chuyen doi: ");
    22.     scanf("%d", &n);
    23.     nhiphan(n);
    24.     getch();
    25. }

    Y!M: doxuanthangvn
    Skype: doxuanthangvnn
    Email: doxuanthang@hotmail.com

  4. #4
    Ngày gia nhập
    11 2012
    Bài viết
    0

    Mặc định @@

    thanks mấy bạn. mình làm đc rồi

  5. #5
    Ngày gia nhập
    01 2013
    Bài viết
    1,477

    Code:
    unsigned int nextPowerOfTwo(unsigned int x)
    {
      --x; x|=x>>1; x|=x>>2; x|=x>>4; x|=x>>8; x|=x>>16; return ++x;
    }
    
    void decToBin(int x)
    {
      if(x==0) {printf("0"); return; }
      int bitmask;
      if(x & (x-1)==0) bitmask=x;
      else bitmask=nextPowerOfTwo(x)>>1;
      do
      {
        if(x>=bitmask) {x-=bitmask; printf("1"); }
        else printf("0");
      }while ((bitmask>>=1)>0);
    }

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

  1. Giá “sốc”, đại hạ giá CT6, giá bán đúng giá gốc giá chủ đầu tư
    Gửi bởi pr89info trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 25-05-2012, 03:04 PM
  2. CT chạy đúng kết quả với BC 3.1 nhưng không đúng với BC 5.02
    Gửi bởi PGD trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 03-01-2010, 03:00 PM
  3. Đoạn này dịch làm sao cho đúng ...
    Gửi bởi 6220119 trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 06-09-2008, 11:53 PM
  4. Phát âm sao cho đúng ?
    Gửi bởi hieubm trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 14
    Bài viết cuối: 14-08-2008, 03:07 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