01/10/2018, 14:20
Mọi ng có thể chỉ cho e thuật toán này chạy ntn k sao lại sao sánh i++ trong while và phải i-- đi
#include <stdio.h>
#include <conio.h>
int main()
{
float a[4],sum=0;
int i=0;
do
{
printf(" nhap vao phan tu thu %d:",i+1);
scanf("%f",&a[i]);
} while (a[i++] > 0);
i--;
for (int j=0 ; j<i ; j++)
sum=sum+a[j];
printf(" tong: %5.2f
",sum);
Bài liên quan
Nhập vào a[0] > 0 -> i++, lúc này i=1.
Nhập vào a[1] = 0 -> i++, lúc này i=2.
Nhưng ta không thể quan tâm đến a[1] được -> i–
tks kiu <3 <3 <3 <3 <3
Vế đầu thì nó ntn: nếu ++i viết riêng ngay sau câu scanf thì phải trừ lại 1 ở đk while, không hay; ngược lại nếu ++i ngay dòng 4 của main() thì câu sau lần lượt là i, a[i-1] và a[i-1]. Khi đã dùng
size_t n
thì cách sau (++ từ đầu) lại hay hơn vì không có -1 (số không âm mà :D) để so sánh, còn dùngint n
thì nên chọn như code mẫu.