Hỏi cách tính tổng các số nhập vào trừ số 0
Chào mọi người, em có vấn đề muốn hỏi:
Đề yêu cầu tính tổng của dãy số
Cho phép user nhập một chuỗi số bất kì và chỉ dừng khi người dùng nhập số 0 (số 0 không được tính vào sum)
Nếu là số chẵn thì bình phương số đó, xong cộng số đó vào sum
Nếu là số lẻ thì lập phương số đó, xong cộng số đó vào sum
Em viết ra được như đoạn code dưới nhưng khi test thì hình như logic của em sai:
vd Nhập vào 2 3 0 thì kết quả phải là sum = 22 + 33*3 = 31 nhưng khi test trong chương trình kết quả lại ra 27
Mọi người xem code với gợi ý cho em logic bài này với ạ
Em cám ơn
#include<stdio.h>
int main()
{
int number, squareNumber, cubeNumber;
int sum = 0;
printf("Enter number to cal sum:");
scanf("%d", &number);
while(number > 0) {
sum += number;
scanf("%d", &number);
if(number%2 == 0) {
//If the number is even, SQUARE that number before adding it to the Sum.
squareNumber = number*number;
}else{
//If the number is odd, CUBE that number before adding it to the Sum.
cubeNumber = number*number*number;
}
}
sum = squareNumber + cubeNumber;
printf("Sum of sequences = %d",sum);
return 0;
}
Bạn chỉ cần cho if chạy xong tới scanf là được nha, vì khi chạy loop phải xét chẵn lẻ trước rồi mới cho người khác nhập tiếp. Còn nếu cho nhập rồi mới xét chẵn lẻ thì sẽ có 1 giá trị trả về số 0
à em hiểu rồi, em cám ơn ạ
với khúc này :
sum = squareNumber + cubeNumber;
biến squareNumber hiện tại là 0, cubeNumber = 27 nên kết quả nhận được sẽ không như ý muốn