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

Đề tài: Cộng số thực lớn trên C | Code cộng số thực lớn trên C | Mọi người vào cùng bàn bạc

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

    Mặc định Cộng số thực lớn trên C | Code cộng số thực lớn trên C | Mọi người vào cùng bàn bạc

    mình mới viết xong code cộng trừ số thực lớn nhưng không hiểu sao tính toán với số lớn rất lâu.
    ai quan tâm cùng bàn luận:
    C Code:
    1. #include <stdio.h>
    2. #include <string.h>
    3. #include <conio.h>
    4. void cong(char *s1,char *s2,char *tong){
    5.     register int i,j,a,b,a0,b0,nho,k;
    6.     register char tmp;
    7.     i=strlen(s1)-1;
    8.     j=strlen(s2)-1;
    9.     a0=strchr(s1,'.')-s1;
    10.     b0=strchr(s2,'.')-s2;
    11.     nho=0;
    12.     k=0;
    13.     while(1){
    14.         a=0,b=0;
    15.         if((i<0)&&(j<0)&&(nho==0)) break;
    16.         if(i-a0==0&&j-b0==0){
    17.            
    18.             tong[k]='.';
    19.             k++;
    20.             i--;
    21.             j--;
    22.         }
    23.         if((i-a0>=j-b0)&&(i>=0)){
    24.             a=s1[i]-'0';
    25.         }
    26.         if((j-b0>=i-a0)&&(j>=0)){
    27.             b=s2[j]-'0';
    28.         }
    29.  
    30.         tong[k]=(a+b+nho)%10+'0';
    31.         nho=(a+b+nho)/10;
    32.         k++;
    33.         if((i-a0>=j-b0)&&(i>=0)) i--;
    34.         if((j-b0>=i-a0)&&(j>=0)) j--;
    35.     }
    36.     tong[k]='\0';
    37.     k--;
    38.     for(i=0;i<k/2;i++){
    39.         tmp=tong[i];
    40.         tong[i]=tong[k-i];
    41.         tong[k-i]=tmp;
    42.     }
    43.  
    44. }
    45. int main(){
    46.     register char tong[100],s1[100],s2[100[;
    47.     printf("nhap 2 so thuc cach nhau bang dau cach:\n");
    48.     scanf("%s %s",s1,s2);
    49.     cong(s1,s2,tong);
    50.     printf("%s",tong);
    51. }

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

    hixxx ngồi mãi giờ mới thấy điều kiện chưa chặt chẽ,ngồi sửa lại đã ok,ai thick thì test hộ nhé.thank!!
    C Code:
    1. #include <stdio.h>
    2. #include <string.h>
    3. #include <conio.h>
    4. void cong(char *s1,char *s2,char *tong){
    5.     int i,j,a,b,a0,b0,nho,k;
    6.     char tmp;
    7.     i=strlen(s1)-1;
    8.     j=strlen(s2)-1;
    9.     if(strchr(s1,'.')!=NULL) a0=strchr(s1,'.')-s1; else{
    10.         i++;
    11.         a0=i;
    12.     }
    13.     if(strchr(s2,'.')!=NULL) b0=strchr(s2,'.')-s2; else{
    14.         j++;
    15.         b0=j;
    16.     }
    17.     nho=0;
    18.     k=0;
    19.     while(1){
    20.         a=0,b=0;
    21.         if((i<0)&&(j<0)&&(nho==0)) break;
    22.  
    23.         if((i-a0==0)&&(j-b0==0)){            
    24.             tong[k]='.';
    25.             k++;
    26.             i--;
    27.             j--;
    28.         }
    29.         if(((i<a0)||(i-a0>=j-b0))&&(i>=0)){
    30.             a=s1[i]-'0';
    31.            
    32.         }
    33.         if(((j<b0)||(j-b0>=i-a0))&&(j>=0)){
    34.             b=s2[j]-'0';        
    35.         }        
    36.         tong[k]=(a+b+nho)%10+'0';
    37.         putchar((a+b+nho)%10+'0');
    38.         nho=(a+b+nho)/10;
    39.         k++;
    40.         if(((i<a0)||(i-a0>=j-b0))&&(i>=0)){
    41.             i--;
    42.             if(((j<b0)||(j-b0>=i+1-a0))&&(j>=0)) j--;
    43.         }else if(((j<b0)||(j-b0>=i-a0))&&(j>=0)) j--;
    44.     }
    45.     tong[k]='\0';
    46.     k--;
    47.     for(i=0;i<(k/2+1);i++){
    48.         tmp=tong[i];
    49.         tong[i]=tong[k-i];
    50.         tong[k-i]=tmp;
    51.     }
    52.  
    53. }
    54. int main(){
    55.     char tong[100],s1[100],s2[100];
    56.     printf("nhap 2 so thuc:\n");
    57.     scanf("%s %s",s1,s2);
    58.     cong(s1,s2,tong);
    59.     printf("\n%s",tong);
    60.     getch();
    61.    
    62. }

  3. #3
    Ngày gia nhập
    05 2009
    Bài viết
    1

    chu giang hay day

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

    bạn viết tiếng việt nhé,mà sao nói không có chút nội dung j cả thế.

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

  1. Trả lời: 30
    Bài viết cuối: 15-02-2012, 07:03 PM
  2. Lỗi lập trình đa luồng trên cùng 1 cửa sổ
    Gửi bởi giaicuu_505_1412 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 23-05-2011, 01:23 PM
  3. Source code build trên Ubuntu có chạy được Trên Linux Kernel không ?
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 0
    Bài viết cuối: 03-11-2010, 09:22 AM
  4. Đoạn code về linked trên C bị lỗi khi build trên Dev C++. Xem giúp mình
    Gửi bởi birthis trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 4
    Bài viết cuối: 06-05-2010, 01:17 PM
  5. Lập trình âm thanh trên C# | Chạy cùng lúc 2 sound player trên cùng 1 form???
    Gửi bởi KingOfBlade trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 11-05-2009, 10:19 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