Thiếu hàm cbrt, exp, log

Mọi người ơi em bị thiếu hàm cbrt,exp,log trong khi,rand trong thư viện cmath và math.h đều không có giờ phải làm sao ạ

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <conio.h>
#include <cmath>
#include <math.h>

using namespace std;

int max(int a,int b)
{
	if(a>b)
	{
		return a;
	}
	return b;
}



/*void hoan_doi(int *a,int *b)
{
	int temp = *a;
	*a = *b;
	*b= temp;
}*/

void hoan_doi(int a,int b)
{
	int temp = a;
	a = b;
	b= temp;
}

int giaiThua(int n)
{
	if (n == 1 || n==0)
        return 1;
    return n * giaiThua(n - 1);
}

int Fibonacci(int n)
{
    if (n == 1 || n == 2)
        return 1;
    return Fibonacci(n - 1) + Fibonacci(n - 2);
}
 

int main(){
    
	int n;
    printf("nhap n: ");
    scanf("%d", &n);
    printf("So Fibonacci thu %d la: %d\n", n, Fibonacci(n));
	
	system("pause");
	return 0;
}
1 Like

Muốn dùng mấy hàm như cbrt,exp,log thì phải include thư viện cmath vào, còn muốn dùng hàm rand thì include thư viện cstdlib.

Ngoài ra, trong C++ thì đừng có dùng printf hay scanf, dùng hàm và thư viện của C vào C++ là nửa nạc nửa mỡ, không đúng chuẩn. Thay vào đó nên include thư viện iostream vào và dùng cincout, đây mới là cách làm chuẩn trên C++.

7 Likes

tgmath.h (ctgmath) bao gồm cả cmathccomplex (log()), một số hàm chỉ có ở C++11 (cbrt()).

6 Likes

ba hàm này em đều không có trong thư viện cmath hay math.h nên em có include vào cũng không sài được ạ,em thử vào 2 hàm này và tìm thử nhưng không có,tại lúc trước em học c++ giờ lại muốn học thêm c ạ

Nếu không có trong math.h thì có lẽ do anh dùng phiên bản cũ hoặc do complier có vấn đề rồi. Do không thấy báo lỗi thiếu file math.h nên em mạo muội đoán có lẽ là anh dùng complier của C98 chăng :thinking:. Anh thử complie bằng complier tải trên mạng về xem sao. Cùng lắm là tải lại cái VS.

3 Likes

Vậy thì code này là C hay C++?

Hàm cbrt thì C99 có, còn C++11 mới có.

2 hàm exp, log thì vẫn bình thường.

4 Likes

sài cả hai ạ,làm sao để đổi qua C99 và C++11 hả anh

Có vài vấn đề với anh:

  1. Hạn chế tối đa việc dùng code nửa nạc nửa mỡ. Nó không khác gì lấy bì trâu đắp thay thịt lợn cả. Không biết mà làm thì còn bỏ qua nhưng biết vẫn cố tình làm thì người khác nhìn vào code sẽ có đánh giá đấy.

  2. Không nhất thiết phải quay về thời cổ chí kim với C99 làm gì cả. Nếu không biết cách cài thì lên google tìm một số trang cầm tay chỉ việc dạy cách cài complier khi sử dụng text editor(IDE VS có đổi complier được không thì em ko rõ). Còn muốn dễ làm hơn thì gỡ VS đi và cài lại, chỉ 30p ngồi chờ mà không phải suy nghĩ gì cả.

7 Likes

em có vẻ giỏi hơn anh,anh xem mấy cái topic của em rồi,giờ mình có cài lại visual studio 2010 có sẵn c++11 và c99 hay cài luôn visual studio 2011 hả em

hoặc bạn lên hẳn 2019 hoặc kiếm 1 cái online IDE như repl.it mà quất

hoặc dùng wandbox.org nếu bạn không đặt nặng vấn đề prompt I/O (“nhập n” chẳng hạn) và không cần code hint (thiệt cho beginner) - repl.it có cả 2

hiển nhiên, phải biết tiếng Anh

7 Likes

Em nghĩ anh nên cài bản VS 2019 thì hơn. Nếu máy yếu chỉ code C/C++ thì cài Code Block cho nhẹ. Nếu vừa muốn code C/C++ và C# mà máy yếu thì tìm cách cài VS Code, chỉ có điều phải cài complier riêng.

VS 2010 chắc không đến mức mà dùng C98 đâu. Có lẽ do một vấn đề nào đó. Anh nên Repair hoặc Reinstall lại app xem sao.

Về phiên bản VS 2011 thì anh tìm được thì cài chứ em chưa nghe thấy bao giờ. Em mới chỉ nghe bản VS Lightswitch 2011 thôi.

Hi vọng những điều trên giúp anh cài được môi trường để học C/C++.

4 Likes

cái này có lập trình window form application không em, à hình như lúc trước anh nói C không lập trình để tự do các biến được hình như là C89 hay phiên bản cũ hơn hay sao ấy còn C98 thì giống như C++ rồi

Bạn muốn code C hay C++? Nếu không rõ ràng được thì tốt nhất bạn nên tạm dừng code, xem xét lại mục đích của bản thân.

6 Likes

rất tiếc là không, vì VSCode với C# không có Designer, 1 cái tất yếu trong Winform
và nếu bạn vẫn thích code Winform với C++, thì xin chia buồn

hoặc bạn có thể hóng tại đây

6 Likes

code c ạ…

thế thì xin chia buồn sâu sắc ;-; vì Winform không có trên C

1 Like

Mình nhớ là WinForm đâu có dùng XML đâu nhỉ, WPF mới dùng :thinking:

5 Likes

à mình nhầm, xin lỗi bạn
tại mình tưởng Winform và WPF dùng chung XAML
mình cũng fix lại rồi :v

3 Likes

Mình thấy Kiệt khá là băn khoăn về vấn đề… máy yếu không cài được cái lọ cái chai, nên phải… cài bản cổ. :kissing:

Có ai bắt nhất thiết cứ phải cài IDE để học lập trình đâu, mà cứ phải khăng khăng cài đúng cái IDE đó, mà cài bản cũ thì lại sai càng sai. :slightly_smiling_face:

Phụ thuộc vào IDE quá cũng không tốt đâu. Như mình là chỉ cần 1 text editor + 1 compiler là đủ.

Cho dù máy có RAM 2G thì mình vẫn tha hồ chạy Sublime Text 3 bản mới nhất hay Vim 82 ngon lành, không biết dùng Vim thì vẫn có Sublime, Nodepad++,… khá nhiều text editor cho bạn tha hồ mà lựa chọn.

Có text editor rồi thì tiếp đến là compiler. Tùy vào việc bạn code thì thì cài đó th. :kissing:
Như mình trc code C/C++ thì là dùng MinGW, rồi chán MinGW lại qua Msys64, gần đây thì xài Clang. :slightly_smiling_face:

Rồi Python cũng chỉ code trên Vim rồi py file.py. :V :V

Hay học Java mình cũng chẳng cần cài Eclipse hay NetBeans, chỉ lên Oracle down JDK bản mới nhất về là đủ, rồi code thì cũng lại chỉ cần Sublime hoặc Vim là ok. :smiley:


À tiện đây thì mình hỏi, không biết bạn đã fix được cái vụ SQL Server chưa. =]]
Nếu chưa thì qua MySql cũng được, cũng không cần phải cài workspace gì đâu, lên console gõ mysql là được, khỏi GUI gì hết. :kissing:


P/S: tất cả những điều mình nói trên đều là dẫn bạn vào hội những người thích dùng console th. :V :V

6 Likes

ok bạn mình hiểu rồi,cái lúc dùng winform mình tạo từ a đến z luôn tạo luôn form cho mình luôn,rồi web form cũng tự tạo lluôn

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?