Chương trình này được cho là để chuyển đổi độ F vào độ C:"while()" hoạt động?
#include <stdio.h>
int main() {
float fahrenheit, celsius;
int max, min, step;
max = 100;
min = 0;
step = 5;
fahrenheit = 0.0;
//celsius = (fahrenheit - 32.0) * 5.0/9.0; DOESN'T WORK HERE
printf("\n");
printf("This program converts fahrenheit into celsius \n");
while(fahrenheit <= max) {
celsius = (fahrenheit - 32.0) * 5.0/9.0; /* Works here */
printf("%3.0f %6.2f\n", fahrenheit, celsius);
fahrenheit = fahrenheit + step;
}
}
Như tôi đã nêu trong bình luận nguồn của tôi, khi tôi cố gắng đưa công thức cho C vào cơ thể của main()
chức năng, tôi nhận được -17.8
cho mỗi giá trị đơn fahrenheit. Kết quả trông giống như thế này -
0 -17.78
5 -17.78
10 -17.78
15 -17.78
20 -17.78
25 -17.78
v.v ... Tuy nhiên, khi tôi đặt công thức celsius vào hàm while()
, tôi nhận được các giá trị celsius chính xác cho mỗi giá trị fahrenheit. Có vẻ như sau:
0 -17.78
5 -15.00
10 -12.22
15 -9.44
20 -6.67
Tại sao điều đó xảy ra?
Đây là mã không hoạt động. Nó giống với mã ở trên, ngoại trừ vị trí của công thức celsius. (Ít nhất, tôi nghĩ rằng đó là.)
#include <stdio.h>
//this program is supposed to convert fahrenheit into celsius
int main() {
float fahrenheit, celsius;
int max, min, step;
max = 100;
min = 0;
step = 5;
fahrenheit = 0.0;
celsius = (fahrenheit - 32.0) * 5.0/9.0;
printf("\n");
printf("This program converts fahrenheit into celsius \n");
while(fahrenheit <= max) {
printf("%3.0f %6.2f\n", fahrenheit, celsius);
fahrenheit = fahrenheit + step;
}
}
'while' không phải là một hàm; đó là từ khóa chỉ định một loại tuyên bố cụ thể. Mã trong câu hỏi của bạn hoạt động chính xác. Chúng ta cần xem mã * không * làm việc. –
@KeithThompson Ông đã cung cấp mã không hoạt động: Mã giống nhau, nhưng mã chuyển đổi được chuyển ra khỏi vòng lặp. – fuz
@FUZxxl: Vâng, anh ấy đã chỉnh sửa câu hỏi sau bình luận của tôi. –