Top.Mail.Ru
Ответы

Код на Си не работает на Linux


Дело такое: надо сдать лабу в универе, на голом си (не плюсы, не шарп), писал на виндовс 10-все отлично работает (суть задания-вывести таблицу значений, заданную конечной суммой). В общем, на винде это выдает то, что показано на 2 скрине, но когда переписал это на линуксе (сдавать надо на нем)-ничего не вывело в строчке wprinf (саму таблицу по сути). Можете помочь, что надо сделать?

По дате
По рейтингу
Аватар пользователя
Новичок

Переделать программу нужно) Выдача значений "IND" из за переполнения факториала и зависание цикла на значениях x>=1 это не нормально)

1234567891011121314151617181920212223
 #include <stdio.h> 
#include <math.h> 
 
int main() { 
	float x = 0, h = 0.1, e = 1e-4; 
	puts("-------------------------------------------"); 
	printf("|%-10s|%-10s|%-10s|\n", " x", " left", " right"); 
	puts("-------------------------------------------"); 
	for (; x <= 2+h/2; x = x + h) 
	{ 
		float left = cos(x), right = 0, elem = 1; 
		int fac = 0; 
		while (fabs(elem)>e) 
		{ 
			right += elem; 
			elem *= -(x * x); 
			elem /= (fac + 1) * (fac + 2); 
			fac += 2; 
		} 
		printf("|%-10.4f|%-10.4f|%-10.4f|\n", x, left, right); 
	} 
	puts("-----------------------------------------"); 
} 
Аватар пользователя
Высший разум

Вы в программе не используете Кириллицу, зачем вам интернационализация? Уберите её. Используйте char* вместо wchar_t*, никаких L"", и setlocale