@dworff

Как записать данные в текстовый файл на C(си)?

Стоит задача:
Создать структуру с 2 параметрами х и у.
Создать массив хранящий 100000 рандомных пар х и у.
Создать 50000 запросов ( 50000 интервалов a и b).
Создать две функции которые считают сумму векторов 1)в лоб 2) с пред расчетом.
И вывести результаты в текстовый файл.

Возникли проблемы с выводом в текстовый файл, т.к. функция отказывается записывать данные типа vec.

Код

#include <stdio.h>; 
#include <iostream>; 
#include <cstdlib>; 
#include <stdlib.h> 
#include <fstream>; 
#include <conio.h>;

using namespace std;

struct vec { int x, y; };
vec A[1000];
int B[1000];
int C[1000];

vec ez(int a, int b)
{
	vec result;
	result.x = 0;
	result.y = 0;

	for (int i = b; i >= a; i--) {
		result.x = result.x + A[i].x;
		result.y = result.y + A[i].y;   /*под вопросом*/
	}
	return result;

}


vec hard(int* B, int* C, int a, int b)
{
	vec result;
	B[0] = 0;
	C[0] = 0;
	int resultx = 0;
	int resulty = 0;
	for (int i = 1; i <= 1000; ++i) {

		B[i] = B[i - 1] + A[i - 1].x;
		C[i] = C[i - 1] + A[i - 1].y;

	}
	for (int i = a; i <= b; ++i)
	{
		resultx = B[b + 1] - B[a];
		resulty = C[b + 1] - C[a];
	}
	result.x = resultx;
	result.y = resulty;

	return result;
}



/*получаем массив векторов*/
int main()
{

	FILE *file;
	file = fopen("E:\\file.txt", "w");


	for (int i = 0; i<1000; i++) {
		A[i].x = rand() % 100 + 1;
		A[i].y = rand() % 100 + 1;
	};


	for (int i = 0; i<1; i++) 
	{
		int a = rand() % 100 + 1;
		int b = rand() % 100 + 1;

		if (a > b) {
			int tmp_b = b;
			b = a;
			a = tmp_b;
		}
		 
		 fprintf (file,"%s %s \n", ez(a, b));
		 fprintf(file, "%s %s \n", hard(B, C, a, b));
	}

	return 0;
}

  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Листинг кривой :) Где инклуды? :) Зачем там namespace - это что, плюса?

man open
man write
man close

выводить конечно же не через fprintf, а через write, размер берется как sizeof(struct vec) * 1000
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы