30/09/2018, 20:59
Sửa lỗi code bài tập C
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <math.h>
void nhap(int *n);
long tongn(int n);
double tongcos(int n);
double tongsin(int n);
int main(){
int n, chon;
while(chon != 4){
printf("
-----------------------------------------------------");
printf("
Chon 1 de Tinh tong ham ((x - 5) * (x - 5) tu 1 den N");
printf("
Chon 2 de Tinh tong ham cos(x)^2 tu 1 den N");
printf("
Chon 3 de Tinh tong ham sin(x)^2 tu 1 den N");
printf("
Chon 4 de Ket thuc");
printf("
-----------------------------------------------------");
printf("
Chon: ");
scanf("%d", &chon);
switch(chon){
case 1:
nhap(&n);
printf("
Tong ham ((x - 5) * (x - 5) tu 1 den N la: %d", tongn(n));
break;
case 2:
nhap(&n);
printf("
Tong ham cos(x)^2 tu 1 den N la: %f", tongcos(n));
break;
case 3:
nhap(&n);
printf("
Tong ham sin(x)^2 tu 1 den N la: %f", tongsin(n));
break;
case 4:
break;
default:
printf("
Ban da nhap sai moi ban nhap lai!");
}
}
return 0;
}
void nhap(int *n){
while(1){
printf("
Nhap so nguyen n: ");
scanf("%d", n);
if(*n < 1)
printf("Ban can nhap n > 0, moi ban nhap lai!");
else
break;
}
}
long tongn(int n){
if(n == 1)
return (n - 5) * (n - 5);
else
return n * n + tongn(n - 1);
}
double tongcos(int n){
int i;
double sum = 0;
for (i = 1; i <= n; i++)
sum += pow(cos((double)n), 2);
return sum;
}
double tongsin(int n){
if(n == 1)
return pow(sin((double)n), 2);
else
return pow(sin((double)n), 2) + tongsin(n - 1);
}
Mình viết ra thế nhưng chức năng 2 và 3 kết quả chạy ra sai, mn giúp mình sửa lỗi với. Và yêu cầu này làm ntn hả mn: Thực hiện xong, chờ người dùng ấn 1 phím bất kì người dùng trở về menu chính.
Cảm ơn mn!
Bài liên quan
Kết quả mong đợi ra nhiêu mà sai bạn.
Không chặn trường hợp nhập
n=0
à.Mình thêm điều kiện của n rồi.
VD ở cos nhập n = 2. Tính bằng máy tính cầm tay = 1.9984
còn ở chương trình n ra: 0.3463
VD ở sin nhập n = 2. Tính bằng máy tính cầm tay = 0.0015
còn ở chương trình n ra: 1.5348
máy tính của bạn để ở chế độ degree (360 độ), còn cos(x) trong C++ thì x là ở chế độ radian (2 pi = 360 độ).
cos(0o) = 1 nên bạn bấm cos(1o) + cos(2o) nó ra gần bằng 2. Cái đề yêu cầu n là radian hay là degree?