Nhờ chuyển code C++ thành C

Mọi người ai rành C có thẻ giúp mình chuyển đoạn code C++ này thành C được không ạ?

#include<iostream>
using namespace std;
int main()
{
	cout<<"Nhap so tien trinh ";
	int n;
	cin>>n;
	double tArrive[10];
	double tCPUBrust[10];
	cout<<"Mac dinh thoi diem den tien trinh thu 1 = 0"<<endl;
	tArrive[0] =0;
	cout<<"Nhap CPU Brust cho tien trinh thu 1 : ";
	cin>>tCPUBrust[0];
	for (int i = 1; i < n; i++)
	{
		int a= i+1;
		cout<<"Nhap thoi diem den tien trinh thu "<<a<<" : ";
		cin>>tArrive[i];
		cout<<"Nhap CUP Brust cho tien trinh thu "<<a<<" : ";
		cin>>tCPUBrust[i];
	}
	double tEnd[10];
	tEnd[0] = 0;
	for (int i = 1; i <= n; i++)
	{
		tEnd[i]= tEnd[i-1]+ tCPUBrust[i-1];
	}
	double tongCPUBrust = 0;
	double tongArrive = 0;
	for (int i = 0; i < n; i++)
	{
		tongCPUBrust = tongCPUBrust + tEnd[i+1];
	}
	for (int i = 0; i < n; i++)
	{
		tongArrive = tongArrive + tArrive[i];
	}
	double tQuayVong = (tongCPUBrust-tongArrive)/n;
	double tThoiGianChoTrungBinh = (tongCPUBrust - tEnd[n]-tongArrive)/n;
	cout<<"Thoi gian cho trung binh cua giai thuat dinh thoi CPU FCFS = "<<tThoiGianChoTrungBinh<<endl;
	cout<<"Thoi gian quay vong cua giai thuat dinh thoi CPU FCFS = "<<tQuayVong<<endl;
	return 0;
}
1 Like

Có mỗi lệnh cout là C không có thôi, các lệnh còn lại C vẫn chạy được. Chỉ cần đổi lệnh Cout thành printf.

Cách đổi:

cout<<"Thoi gian quay vong cua giai thuat dinh thoi CPU FCFS = "<<tQuayVong<<endl;

thành

printf("Thoi gian quay vong cua giai thuat dinh thoi CPU FCFS = %f \n", tQuayVong);

Code hoàn chỉnh

#include<stdio.h>

int main()
{
	printf("Nhap so tien trinh ");
	int n;
	scanf("%d",&n);
	double tArrive[10];
	double tCPUBrust[10];
	printf("Mac dinh thoi diem den tien trinh thu 1 = 0\n");
	tArrive[0] =0;
	printf("Nhap CPU Brust cho tien trinh thu 1 : ");
	scanf("%lf", &tCPUBrust[0]);
	for (int i = 1; i < n; i++)
	{
		int a= i+1;
		printf("Nhap thoi diem den tien trinh thu %d : ", a);
		scanf("%lf", &tArrive[i]);
		printf("Nhap CUP Brust cho tien trinh thu %d : ", a);
		scanf("%lf", &tCPUBrust[i]);
	}
	double tEnd[10];
	tEnd[0] = 0;
	for (int i = 1; i <= n; i++)
	{
		tEnd[i]= tEnd[i-1]+ tCPUBrust[i-1];
	}
	double tongCPUBrust = 0;
	double tongArrive = 0;
	for (int i = 0; i < n; i++)
	{
		tongCPUBrust = tongCPUBrust + tEnd[i+1];
	}
	for (int i = 0; i < n; i++)
	{
		tongArrive = tongArrive + tArrive[i];
	}
	double tQuayVong = (tongCPUBrust-tongArrive)/n;
	double tThoiGianChoTrungBinh = (tongCPUBrust - tEnd[n]-tongArrive)/n;
	printf("Thoi gian cho trung binh cua giai thuat dinh thoi CPU FCFS = \n", tThoiGianChoTrungBinh);
	printf("Thoi gian quay vong cua giai thuat dinh thoi CPU FCFS = \n", tQuayVong);
	return 0;
}
2 Likes

cảm ơn a nhiều lắm,Thì ra khác có chổ nhập xuất.

1 Like

Tại em không chịu để ý kỹ thôi :smile:

Hi,tại em củng chưa làm c lần nào,mà trường lại bắt viết c biên dịch = gcc,em viết c++ biên dịch g++ xong nộp luôn,em biên dịch gcc báo nhiều lỗi quá.phải gắn mò linux từ từ :smile:

1 Like

nếu thắc mắc về lập trình linux thì lập topic hỏi anh, anh có nhiều kn lập trình linux :slight_smile:

4 Likes

Hi vậy anh chỉ em cái cảnh báo này ntn nha,em dùng code ở trên anh sửa cho em đó.

1 Like
printf("Thoi gian cho trung binh cua giai thuat dinh thoi CPU FCFS = \n", tThoiGianChoTrungBinh);
printf("Thoi gian quay vong cua giai thuat dinh thoi CPU FCFS = \n", tQuayVong);

Sửa lại thành

printf("Thoi gian cho trung binh cua giai thuat dinh thoi CPU FCFS =%f \n", tThoiGianChoTrungBinh);
printf("Thoi gian quay vong cua giai thuat dinh thoi CPU FCFS = %f\n", tQuayVong);
1 Like

nhờ các cao nhân chuyển giúp code này sang C với ạ. Cảm ơn các cao thủ nhiều!

#include  <iostream>
using std::cout;
using std::ios;
#include <iomanip>
using std::setw;
using std::setprecision;
using std::setiosflags;
#include <cstdlib>
#include <ctime>

int main()
{
   const long ROLLS = 36000;
   const int SIZE = 13;

   int expected[SIZE] = {0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1};
   int x, y, sum[SIZE] = {0};

   srand(time(0));

   for (long i = 1; i <= ROLLS; ++i){
    x = 1 + rand() % 6;
    y = 1 + rand() % 6;
    ++sum[x+y];
   }
   cout <<setw (10) << "sum" << setw (10) << "total" << setw (10)
   << "expected" << setw (10) << "actual\n"
   << setiosflags (ios::fixed | ios::showpoint);

   for (int j = 2; j < SIZE; ++j)
    cout << setw (10) << j << setw (10) << sum[j] << setprecision (3)
          << setw (9) << 100.0 * expected[j]/36 << "%" << setprecision (3)
          << setw (9) << 100.0 * sum[j]/36000 << "%\n";
   return 0;
}

cái này tương tự nha. bạn chuyển cout thành printf.
phần định dạng, thay cho setw(10) , setprecision thì bạn tham khảo ở đây, trong trường hợp này dùng printf thuận tiện hơn cout rất nhiều
https://www.cplusplus.com/reference/cstdio/printf/

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