Hỏi/ Thắc mắc - Nhờ mọi người giúp mình xét lỗi đoạn code C này | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Hỏi/ Thắc mắc Nhờ mọi người giúp mình xét lỗi đoạn code C này

dangthaihoc

Búa Gỗ Đôi
Các bạn cho mình hỏi tại sao chỗ này của mình nó bị lỗi không điền được dãy số thứ 3 và dòng lệnh ra bị lỗi???
C:
/*
- nhập 4 dãy số
- tìm min,max của 4 số có cùng chỉ số
- in ra màn hình theo trình tự: ai bi ci di min max
- sử dụng mảng 1 chiều
*/
#include "stdio.h"
#include "conio.h"
float a[100],b[100],c[100],d[100];
float min,max;
int n,i,j,k,l;
int m;
main()
{
tt:
    //Nhập 4 dãy số liệu vào 4 mảng 1 chiều
    printf("Moi day so thu nhat bao gom bao nhieu chu so: ");
    scanf("%d",&n);
    printf("Day 1 la:\n");
    for(i=n-1;i>=0;--i) scanf("%f",&a[i]);
    printf("Day 2 la:\n");
    for(j=n-1;j>=0;--j) scanf("%f",&b[j]);
    printf("Day 3 la:\n");
    for(k=n-1;k>=0;--k) scanf("%f",&c[k]);
    printf("Day 4 la:\n");
    for(l=n-1;l>=0;--l) scanf("%f",&d[l]);
    //Tìm min,max
    for (m=n-1;m>=0;--m)
    {
        min=a[m];
        if (min > b[m]) min=b[m];
        if (min > c[m]) min=c[m];
        if (min > d[m]) min=d[m];
        max=a[m];
        if (max < b[m]) max=b[m];
        if (max < c[m]) max=c[m];
        if (max < d[m]) max=d[m];
        printf("\n %0.2f  %0.2f  %0.2f  %0.2f  %0.2f  %0.2f",a[m],b[m],c[m],d[m],min,max);

    }
    printf("\nBan co muong tiep tuc c/k (co/khong): ");
    if (getche()=='c'||getche()=='C') goto tt;
}
1.jpg

sau khi thêm câu lệnh fflush(stdin) vào mình ms điền được dãy 3???
- Thứ hai nữa là ở các câu lệnh có các dấu >= hay <= mình nghĩ phải thay bằng các dấu > hay < nhưng máy chạy ra lại bị sai????
 
Sửa lần cuối:

1234560987

Rìu Vàng
Mình vừa test thử trên máy của mình, sử dụng phần mềm dev c++ thì vẫn chạy bình thường nhé, nhập dãy 3 bình thường. Máy của bạn chắc trình biên dịch bị lỗi, bạn nên thêm câu lệnh fflush(stdin) để xóa bỏ cache giúp mỗi lần biên dịch đc chính xác hơn.
Về vấn đề thứ 2, giả sử bạn nhập n = 3, thì ví dụ trong dòng lệnh này
Mã:
for(i = n - 1 ; i >= 0; --i)
i đầu tiên sẽ nhận giá trị là n - 1 = 2, nếu i > 0 => vòng lặp sẽ bắt đầu từ i = 2, i = 1 là hết => chỉ nhập đc 2 phần từ => sai
 


Top