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

Đề tài: Giải thích giùm mình với!

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

    Angry Giải thích giùm mình với!

    Mình có bài " nhập vào n số nguyên, tìm max và min" viết trong C. Dưới đây là code, nhưng có một dòng mình không hiểu nên nhờ mọi người giải thích giùm nhé.
    #include<stdio.h>
    #include<conio.h>
    void main(void)
    {
    int n, i, a, min, max;
    printf("Nhap vao so n:");
    scanf("%d", &n);
    min = max;
    max = -min;// đoạn này mình không hiểu sao lại gán max = -min

    for(i=1; i<=n; i++)
    {
    printf("Nhap vao so thu %d:", i);
    scanf("%d", &a);
    if(a>max)
    max = a;
    if(a<min)
    min = a;
    }
    printf("So lon nhat la: %d\n", max);
    printf("So nho nhat la: %d", min);
    getch();
    }

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

    Trích dẫn Nguyên bản được gửi bởi gachiep Xem bài viết
    Mình có bài " nhập vào n số nguyên, tìm max và min" viết trong C. Dưới đây là code, nhưng có một dòng mình không hiểu nên nhờ mọi người giải thích giùm nhé.
    #include<stdio.h>
    #include<conio.h>
    void main(void)
    {
    int n, i, a, min, max;
    printf("Nhap vao so n:");
    scanf("%d", &n);
    min = max;
    max = -min;// đoạn này mình không hiểu sao lại gán max = -min

    for(i=1; i<=n; i++)
    {
    printf("Nhap vao so thu %d:", i);
    scanf("%d", &a);
    if(a>max)
    max = a;
    if(a<min)
    min = a;
    }
    printf("So lon nhat la: %d\n", max);
    printf("So nho nhat la: %d", min);
    getch();
    }

    max ko có giá trị vậy thì sao gán cho nhau đc
    cho là max = 1
    min = max = 1
    max = -min = -1
    for...... n = 3 a [0] = 1, a[1] = 2, a[2] = 3
    i = 1
    1 > -1 -> max = a = 1
    i = 2
    2 > 1 -> max = 2
    i = 3
    3 > 2 -> max = 3

    => max = 3 min = 1
    nếu a[0] = 0
    i = 1
    0 > -1 ? false -> 0 < 1 ( min ) ? true -> min = 0

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

    Trích dẫn Nguyên bản được gửi bởi gachiep Xem bài viết
    Mình có bài " nhập vào n số nguyên, tìm max và min" viết trong C. Dưới đây là code, nhưng có một dòng mình không hiểu nên nhờ mọi người giải thích giùm nhé.
    Cái chỗ bạn hỏi chẳng có ý nghĩa gì cả đâu, dòng code đơn giản thôi mà, cần gì mà phải gán loạn lên như thế,hjhj
    Nếu đề bài chỉ đơn giản như vậy thì mình xin sửa lại code cho bạn như sau
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main(void)
    4. {
    5.      int n, i, a[100], min, max;
    6.    printf("Nhap vao so n:");
    7.    scanf("%d", &n);
    8.    for(i=0; i<n; i++)
    9.    {
    10.     printf("Nhap vao so thu %d:", i);
    11.       scanf("%d", &a[i]);
    12.    }
    13.    min = max = a[0]; // Đây cái chỗ bạn gán chỉ cần thế này thôi
    14.    for(i=0; i<n; i++) // Nên để thế này bạn à, không nên để như bạn for(i=1; i<=n; i++) bạn nhé
    15.    {
    16.       if(a[i] > max)
    17.         max = a[i];
    18.       if(a[i] < min)
    19.         min = a[i]; // Nhập vào n số nguyên thì phải nhập là mảng a[i] chứ bạn
    20.    }
    21.    printf("So lon nhat la: %d\n", max);
    22.    printf("So nho nhat la: %d", min);
    23.    getch();
    24. }
    Còn gì không hiểu bạn cứ hỏi

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

    Còn gì không hiểu bạn cứ hỏi
    bài này đâu nhất thiết phải mảng hả anh cú pháp bạn ý ko có sai nếu có sai thì sai ổ chỗ tự gán như vậy min max sẽ lấy giá trị ngẫu nhiên trong trường hợp này là miền giá trị kiểu int giả sự số ngẫu nhiên đó luôn là min hoặc max so với đầu vào thì sẽ dẫn tới sai , còn trong C cho phép tự gán mà.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main(void)
    4. {
    5.    int n, i, a, min, max;
    6.    do{
    7.    printf("Nhap vao n>0:");
    8.    scanf("%d", &n);
    9.    }while(n<=0);
    10.    
    11.    for(i=0; i<n; i++)
    12.    {
    13.       printf("Nhap vao so thu %d:", i+1);
    14.       scanf("%d", &a);
    15.       if(i==0)
    16.          max = min = a;
    17.       else
    18.       {
    19.         if(a > max)
    20.            max = a;
    21.         if(a < min)
    22.             min = a;
    23.       }
    24.     }
    25.    printf("So lon nhat la: %d\n", max);
    26.    printf("So nho nhat la: %d", min);
    27.    getch();
    28. }
    Đã được chỉnh sửa lần cuối bởi kimcy1992 : 27-12-2012 lúc 09:49 AM. Lý do: bổ sung bài viết
    Giao lưu và học hỏi
    https://www.facebook.com/kimcy1992

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

  1. Bài tập C++ [HELP]Nhờ các bác vào giải giùm mình máy bài tập c++ này nha
    Gửi bởi thanh_luu trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 07-07-2013, 01:52 PM
  2. Giải thích giùm mình cái đề này với
    Gửi bởi khachung_uit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 22-11-2012, 10:21 AM
  3. mình là dân mới, giải giùm mình bài tập này
    Gửi bởi bibiyenbai trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 27-04-2010, 08:15 PM
  4. ai kiểm tra lỗi bài đơn giản giùm em nha.
    Gửi bởi thanhle_uit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 11
    Bài viết cuối: 13-02-2009, 11:57 AM
  5. anh em ơi, giải giùm em bài này.
    Gửi bởi baoanh_nguyen trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 15-01-2008, 10:52 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