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

Đề tài: MN xem giúp em bài tập chuỗi trong C với ạ

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

    Mặc định MN xem giúp em bài tập chuỗi trong C với ạ

    Viết chương trình nhập vào một chuỗi không có khoảng trắng, biễu diễn một biểu thức
    gồm: một số nguyên dương, một toán tử (một trong các dấu + và - ) và số nguyên
    dương thứ hai. Mỗi số có nhiều nhất 9 chữ số. Nếu toán tử là phép trừ, số thứ hai luôn
    thấp hơn số thứ nhất. Không có số nào bắt đầu bằng số không.
    In ra hai dòng có hai số đã cho, số thứ hai ở dưới số đầu tiên, các chữ số cuối (đại
    diện cho các số nguyên) phải được căn trong cùng một cột. Đặt toán tử ngay trước chữ
    số đầu tiên của số thứ hai.
    Sau số thứ hai phải có một đường kẻ ngang tạo bởi dấu gạch ngang (-). Đường
    ngang luôn dài đến tận cùng bên trái và bên phải của cả hai số (và toán tử) ngay bên
    dưới và phía trên nó. Điều đó có nghĩa là nó bắt đầu trong cùng một cột có chữ số
    hoặc toán tử ngoài cùng bên trái của hai dòng đó (một bên dưới và một bên trên). Nó
    kết thúc bằng cột có chữ số tận cùng bên phải của hai số đó. Dòng không được dài
    hơn hoặc ngắn hơn so với quy định.
    Đặt kết quả ngay bên dưới đường kẻ ngang, với chữ số cuối cùng được căn với
    chữ số cuối cùng của cả hai toán hạng.




    code của e:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <conio.h>


    int main(){
    char str[20];
    printf("**NHAP CHUOI: ");
    scanf("%s",&str);
    printf("\n\n**KET QUA IN RA: \n");
    char *a;
    char *b;
    char phepcong='+';
    if(strchr(str,phepcong)){
    a = strtok(str,"+");
    b = strtok('\0', "+");

    int a_int=atoi(a);
    int b_int=atoi(b);
    int tong=(int)a_int+b_int;

    printf("%20s\n",a);
    printf("\n%11s%9s\n","+",b);
    printf("%20s\n","---------");
    printf("%20d\n\n",tong);
    }
    char pheptru='-';
    if(strchr(str,pheptru)) {
    a = strtok(str, "-");
    b = strtok('\0', "-");

    int a_int=atoi(a);
    int b_int=atoi(b);
    int hieu=(int)a_int-b_int;

    if(strlen(b)<strlen(a)) {
    printf("%20s\n",a);
    printf("\n%11s%9s\n","-",b);
    printf("%20s\n","---------");
    printf("%20d\n\n",hieu);
    }
    else {
    printf("\n\tSo thu thu hai phai thap hon so thu nhat");
    }

    return 0;
    }

    }
    P/S mn giúp em căn dấu gạch ngang bằng số thứ 2 với ạ

  2. #2
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    745

    Khoan hãy nói đến việc in ra kết quả. Đề bài yêu cầu in ra toán tử ở ngay trước chữ số đầu tiên của số thứ hai. Code của bạn chưa đáp ứng yêu cầu này. Bạn sẽ làm thế nào?

    Bạn nhớ định dạng code nhé. Như thế này:

    C Code:
    1. #include <stdio.h>
    2. #include <string.h>
    3. #include <stdlib.h>
    4. #include <conio.h>
    5.  
    6.  
    7. int main(){
    8.    char str[20];
    9.    printf("NHAP CHUOI: ");
    10.    scanf("%s",str);
    11.    printf("\n\n**KET QUA IN RA: \n");
    12.    char *a;
    13.    char *b;
    14.    char phepcong='+';
    15.    if(strchr(str,phepcong)){
    16.       a = strtok(str,"+");
    17.       b = strtok('\0', "+");
    18.  
    19.       int a_int=atoi(a);
    20.       int b_int=atoi(b);
    21.       int tong=(int)a_int+b_int;
    22.  
    23.       printf("%20s\n",a);
    24.       printf("\n%11s%9s\n","+",b);
    25.       printf("%20s\n","---------");
    26.       printf("%20d\n\n",tong);
    27.    }
    28.  
    29.    char pheptru='-';
    30.    if(strchr(str,pheptru)) {
    31.       a = strtok(str, "-");
    32.       b = strtok('\0', "-");
    33.  
    34.       int a_int=atoi(a);
    35.       int b_int=atoi(b);
    36.       int hieu=(int)a_int-b_int;
    37.  
    38.       if(strlen(b)<strlen(a)) {
    39.          printf("%20s\n",a);
    40.          printf("\n%11s%9s\n","-",b);
    41.          printf("%20s\n","---------");
    42.          printf("%20d\n\n",hieu);
    43.       }
    44.       else {
    45.          printf("\n\tSo thu thu hai phai thap hon so thu nhat");
    46.       }
    47.  
    48.       return 0;
    49.    }
    50. }
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

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

    dạ e cảm ơn, mình có cách nào để in ra toán tử ở ngay trước chữ số đầu tiên của số thứ hai ko ạ
    em thử nhiều cách r vẫn không được

  4. #4
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    745

    Trích dẫn Nguyên bản được gửi bởi raynew Xem bài viết
    dạ e cảm ơn, mình có cách nào để in ra toán tử ở ngay trước chữ số đầu tiên của số thứ hai ko ạ
    em thử nhiều cách r vẫn không được
    Dùng printf(), bạn sẽ định dạng thế nào để in ra một số nguyên cùng với cả dấu của nó?
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

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