Lilyanaa Ответов: 1

Параллельно-сопряженных градиентов на языке C


Мне нужен этот код на языке c, я не знаю инструкций cpp language может ли кто-нибудь помочь мне преобразовать параллельный сопряженный градиент в c

Что я уже пробовал:

----

1 Ответов

Рейтинг:
1

CPallini

Цитата:
Я не знаю инструкций языка cpp
Значит, пора учиться. Вам повезло: это очень хорошо. C-как код. Вы должны в основном заменить создать/удалить[^] звонки с malloc/free одни, некоторые операторы выходных потоков с соответствующими C стандарт printf звонки и почти ничего больше.


Rick York

Также необходимо изменить использование строк и сравнений с использованием этих переменных.

По-моему, это простая задача.

Lilyanaa

Ладно, теперь я пытаюсь

Lilyanaa

У меня есть проблема в этой части не могли бы вы помочь как можно перевести ее на язык Си
если(argc > 2) {
T = argv[2];
if(argc > 3) {
P = argv[3];
if(argc > 4) {
Db = argv[4];
}
}
}

CPallini

Вы должны заменить строки C++ указателями char (char *).
Например:
char * T;
//...
T = argv[2];
//..
if ( T && ( strcmp(T,"-p")==0)) // это заменяет if (T == "-p")
//..

Lilyanaa

Большое вам спасибо, у меня есть эта ошибка и для других файлов, почему? несовместимый тип для аргумента 2 ‘fprintf ' fprintf(matrixfile, a[i][j]); Примечание: ожидается ‘const char * restrict’, но аргумент имеет тип ‘double’
extern int fprintf (FILE *__restrict __stream,

Lilyanaa

Мне не нужно использовать файл сейчас, поэтому я прокомментировал его, но у меня есть эта проблема, как ее решить, пожалуйста/// ===================================================================================
= НЕУДАЧНОЕ ЗАВЕРШЕНИЕ ОДНОГО ИЗ ВАШИХ ПРОЦЕССОВ ПОДАЧИ ЗАЯВКИ
= PID 2173 работает на Саре
= КОД ЗАВЕРШЕНИЯ: 11
= ОЧИСТКА ОСТАВШИХСЯ ПРОЦЕССОВ
= ВЫ МОЖЕТЕ ИГНОРИРОВАТЬ ПРИВЕДЕННЫЕ НИЖЕ СООБЩЕНИЯ ОБ ОЧИСТКЕ
===================================================================================
Ваше приложение завершается строкой выхода: ошибка сегментации (сигнал 11)
Обычно это относится к проблеме с вашим приложением.
Пожалуйста, обратитесь к странице часто задаваемых вопросов для получения предложений по отладке

Rick York

Это означает, что пришло время использовать отладчик.

Lilyanaa

@Rick York, подумайте о проблеме в этой части, потому что, когда я комментирую ее, программа запускается правильно, если(argc > 2) {
T = argv[2];
if(argc > 3) {
P = argv[3];
if(argc > 4) {
Db = argv[4];
}
}
}