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

Đề tài: Cách lưu giá trị vào mảng với điều kiện giá trị khác 0

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

    Mặc định Cách lưu giá trị vào mảng với điều kiện giá trị khác 0

    Mình dùng 1 hàm for để nhập giá trị vào mảng:
    for (int i=0;i<n;i++)
    {
    printf("Nhap a%d= ",i);
    scanf("%d",&a[i]);
    }

    Bây giờ mình thêm yêu cầu là muốn kiểm tra xem nếu giá trị nhập vào = 0 thì không lưu vào nhưng chưa biết cách làm.
    Mình thừ dùng 1 biến check kiểm tra như sau thì có được k?
    int check;
    for (int i=0;i<n;i++)
    {
    printf("Nhap a%d= ",i);
    scanf("%d",&check);
    if (check != 0)
    a[i]=check;
    }

    Làm như vậy thì có phải xóa bộ đệm hay xóa cái gì trước khi scanf đi scanf lại cái check như thế không?
    Sau đó mình muốn lấy các giá trị đó để tính tiếp, vậy trước khi tính phải kiểm tra giá trị đó có = null hay không(vì ở trên ta kiểm tra nếu = 0 thì không gán vào mảng), thế làm sao để kiểm tra?
    Xin cảm ơn rất nhiều, mình không thành thạo C lắm !

  2. #2
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà Nội
    Bài viết
    381

    Mặc định Mặc định Cách lưu giá trị vào mảng với điều kiện giá trị khác 0

    Bạn có thể làm như thế này:
    C Code:
    1. or (int i=0;i<n;i++)
    2. {
    3.     do
    4.     {
    5.         printf("Nhap a%d= ",i);
    6.         scanf("%d",&a[i]);
    7.     }while(a[i] = 0)
    8. }

    skype: hvphu2010
    Yahoo: hvphu2010
    Sdt: 0129 609 4567

  3. #3
    Ngày gia nhập
    03 2011
    Nơi ở
    Bình Dương, Hồ Chí Minh
    Bài viết
    392

    Trích dẫn Nguyên bản được gửi bởi kitti Xem bài viết
    Bạn có thể làm như thế này:
    C Code:
    1. or (int i=0;i<n;i++)
    2. {
    3.     do
    4.     {
    5.         printf("Nhap a%d= ",i);
    6.         scanf("%d",&a[i]);
    7.     }while(a[i] = 0)
    8. }
    "or" ??
    while (a[i]=0) =>phép ghán??
    Chắc bạn có chút sơ sót???

  4. #4
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà Nội
    Bài viết
    381

    Đúng là sơ sót thật! Sửa lại như sau:
    C Code:
    1. while (a[i] == 0)

    skype: hvphu2010
    Yahoo: hvphu2010
    Sdt: 0129 609 4567

  5. #5
    Ngày gia nhập
    11 2010
    Bài viết
    18

    Trích dẫn Nguyên bản được gửi bởi kitti Xem bài viết
    Bạn có thể làm như thế này:
    Bạn hiểu sai ý mình rồi. Cách của bạn là bắt người dùng nhập cho đến khi khác 0 mới tha. Còn ý mình là kiểm tra nếu khác 0 thì mới lưu vào mảng, = 0 thì chuyển sang a[i] tiếp theo.

  6. #6
    Ngày gia nhập
    05 2011
    Bài viết
    299

    Mặc định Cách lưu giá trị vào mảng với điều kiện giá trị khác 0

    bạn đã có ý tưởng và viết code ra rồi thì chạy thử xem kết quả thế nào ^^
    Programming tutorials and source code examples

    Trong nhà không vợ không con
    Uống bia gặm thịt sao ngon thế này
    Nhậu nhẹt không bị la rầy
    Một tuần ta cứ bảy ngày " nâng ly "....

  7. #7
    Ngày gia nhập
    03 2011
    Nơi ở
    Bình Dương, Hồ Chí Minh
    Bài viết
    392

    Trích dẫn Nguyên bản được gửi bởi kazat Xem bài viết
    Bạn hiểu sai ý mình rồi. Cách của bạn là bắt người dùng nhập cho đến khi khác 0 mới tha. Còn ý mình là kiểm tra nếu khác 0 thì mới lưu vào mảng, = 0 thì chuyển sang a[i] tiếp theo.
    Thử cái này xem:
    C Code:
    1. #include "stdio.h"
    2. #include "conio.h"
    3. #include <string.h>
    4.  
    5. void main()
    6. {
    7.     int c[5],temp;
    8.     for (int i=0;i<5;i++)
    9.     {
    10.         printf("\nNhap a[%d]: ",i);
    11.         scanf("%d",&temp);
    12.         if (temp==0)
    13.             c[i]=NULL;
    14.         else
    15.             c[i]=temp;
    16.     }
    17.     for (int i=0;i<5;i++)
    18.         if (c[i]!=NULL)
    19.             printf("\na[%d]: %d",i,c[i]);
    20.         else
    21.             printf("\na[%d]: chua co du lieu",i);
    22.    
    23.     /* Tinh toan thu tren mang*/
    24.     int tong;
    25.     tong=0;
    26.     for (int i=0;i<5;i++)
    27.         if (c[i]!=NULL)
    28.             tong+=c[i];
    29.     printf("\nTong la %d\n",tong);
    30.     getch();
    31. }

  8. #8
    Ngày gia nhập
    11 2010
    Bài viết
    18

    Cảm ơn rất nhiều. Mình bí ở chỗ c[i]!=NULL đấy. Có lẽ do trong C mình không viết hoa chữ null chăng?

  9. #9
    Ngày gia nhập
    03 2011
    Nơi ở
    Bình Dương, Hồ Chí Minh
    Bài viết
    392

    Trích dẫn Nguyên bản được gửi bởi kazat Xem bài viết
    Cảm ơn rất nhiều. Mình bí ở chỗ c[i]!=NULL đấy. Có lẽ do trong C mình không viết hoa chữ null chăng?
    yes!! phải ghi in hoa nhé bạ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