Проверить программу на си

Если gcc ничего не вернул, то компиляция прошла успешно. А вот в самой программе ошибки скорее всего будут. Вы её хоть пробовали запустить?

Кто ищет, тот всегда найдет!
Опыт — это когда все получается с первого раза.
Спасибо сказали:
Фантом Сообщения: 440 ОС: openSUSE

Re: Проверьте программу на Си

Сообщение Фантом » 15.08.2012 00:05

Вполне нормально. Только зачем нужны два последних #include (один из которых повторяет уже имеющийся) и зачем указывать при компиляции C99 (и совершенно не использовать его в самой программе)?

Спасибо сказали:
unixlike Сообщения: 14

Re: Проверьте программу на Си

Сообщение unixlike » 15.08.2012 10:03

Вы её хоть пробовали запустить?

да, работает как бы нормально, сравнение оригинала с копией cmp говорит ОК.

Только зачем нужны два последних #include (один из которых повторяет уже имеющийся) и зачем указывать при компиляции C99

повторение #include ошибка — перестарался

Язык Си: компиляция в Visual Studio Code ПРОСТО


а #include чтоб не было варниннгов при компиляции с флагом -std=c99 без unistd.h gcc ругался.
ну и c99 указал для более строгой проверки формальной корректности кода или это не поможет?

Спасибо сказали:
Janik Сообщения: 838 Статус: Оператор вычислительных машин ОС: Debian

Re: Проверьте программу на Си

Сообщение Janik » 15.08.2012 10:50

По-умолчанию используется старый стандарт, вроде как.
Поправте, если заблуждаюсь
Кто ищет, тот всегда найдет!
Опыт — это когда все получается с первого раза.
Спасибо сказали:

drBatty Сообщения: 8735 Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит. ОС: Slackware-current Контактная информация:

Re: Проверьте программу на Си

Сообщение drBatty » 15.08.2012 10:51

14.08.2012 19:40
проверьте все ли там правильно.

форматирование сделайте нормальное. так не видно.

Скоро придёт
Осень

Спасибо сказали:
Janik Сообщения: 838 Статус: Оператор вычислительных машин ОС: Debian

Re: Проверьте программу на Си

Сообщение Janik » 15.08.2012 10:59

Читайте также:
Качаем пресс в домашних условиях для мужчин программа

Кстати, можно проверить программу на то, как она обрабатывает неправильные аргументы или ситуации.
Кто ищет, тот всегда найдет!
Опыт — это когда все получается с первого раза.
Спасибо сказали:
unixlike Сообщения: 14

Re: Проверьте программу на Си

Сообщение unixlike » 15.08.2012 13:56

форматирование сделайте нормальное. так не видно.

нормальное это как?

Я кстати похоже нашел логические ошибки. Неправильно же сразу exit(1); везде ставить, нужно открытые файлы закрыть сначала.

И еще такой момент, первое копирование 200Мб файла на тот же диск примерно 5 сек, это нормально. А вот повторное 1.2-1.6 сек явно не реально. Чтение с диска макс. 87Мб/сек. Добавлял sync() в программу время повторного копирования не изменилось.

Может потому что sync() ничего не возвращает и программа не ждет результата.

Тогда как гарантированно сбросить данные на диск до закрытия программы?

Напишите программу, проверяющую число, введенное с клавиатуры на четность. Домашнее задание. C++ #2.

Спасибо сказали:
unixlike Сообщения: 14

Re: Проверьте программу на Си

Сообщение unixlike » 15.08.2012 15:17

Вот прогнал через форматирование:

#include #include #include #include #define BUFFER_SIZE 4096 int main(int argc, char *argv[]) < int finput1, foutput2, closef1, closef2; int read_bytes; char buffer[BUFFER_SIZE + 1]; if (argc < 3) < fprintf(stderr, «Lack of argumentsn»); exit(1); >finput1 = open(argv[1], O_RDONLY); if (finput1 < 0) < fprintf(stderr, «Cannot open file-Readn»); exit(1); >foutput2 = open(argv[2], O_WRONLY | O_CREAT | O_EXCL, 0600); if (foutput2 < 0) < fprintf(stderr, «Cannot open file-Writen»); exit(1); >while ((read_bytes = read(finput1, buffer, BUFFER_SIZE)) > 0) < write(foutput2, buffer, read_bytes); >if (read_bytes < 0) < fprintf(stderr, «cp: Cannot read filen»); exit(1); >closef1 = close(finput1); if (closef1 < 0) < fprintf(stderr, «Cannot close file-Readn»); exit(1); >closef2 = close(foutput2); if (closef2 < 0) < fprintf(stderr, «Cannot close file-Writen»); exit(1); >exit(0); >

Источник: unixforum.org

Онлайн-компилятор «Си»: выбираем лучший компилятор для C

Рано или поздно при написании программ разработчики сталкиваются с тем, что нужно быстро проверить код . Однако далеко не всегда для этого надо запускать сложные прикладные программы и ресурсоёмкие десктопные IDE, тем более, если речь идёт о людях, которые только начинают изучать программирование. Решить проблему поможет специальная online-программа — компилятор .

В этой статье вы найдете подборку лучших онлайн-компиляторов . Почти все они универсальны. Многие поддерживают не только язык программирования C, но и массу других языков. Итак, встречайте лучшие компиляторы для online-использования!

IdeOne

IdeOne — компилятор и инструмент отладки, позволяющий прямо в браузере выполнять код. Поддерживает десятки языков, включая их конкретные версии. Возможна даже компиляция на Brainfuck .

Читайте также:
Программа чтобы проверить Айфон перед покупкой с рук

Приложение позволяет настраивать лимиты времени, указывать данные для стандартного ввода, добавлять описание кода, делиться им с коллегами и друзьями, которые, в свою очередь, смогут делать форк исходного материала через удобный интерфейс. Вдобавок ко всему, вы легко вставите сохранённый код на сайт посредством специального виджета.

Koding

В принципе, Koding.com это не online-компилятор в привычном смысле. Он позволяет создавать в облаке полноценные виртуальные машины под управлением Ubuntu , а на них уже можно делать всё, что заблагорассудится, включая компилирование кода . Есть панель управления своим сервером и окошко терминала. Доступна удобная IDE в интерфейсе.

JDoodle

Это приложение поддерживает много языков, среди которых есть те, которые вы не найдёте во многих других инструментах для компиляции . Приятная особенность JDoodle — возможность совместной работы с другом или с коллегой. Для этого достаточно отправить ссылку на текущую сессию, после чего можно разрабатывать приложения с удвоенной скоростью!

CodePad

Говорят, что быстрее и лучше работается с минималистичным сервисом. CodePad — именно таковым и является. Он простой и абсолютно нересурсоёмкий, поэтому сайт будет хорошо работать даже при медленной скорости вашего интернета. Вдобавок ко всему, предусмотрены такие «плюшки», как интеграция с Vim либо Emacs и автоподключение стандартных заголовков.

Платформа поддерживает наиболее распространённые языки программирования . Правда, выбрать конкретную версию интерпретатора не удастся. Очередной минус, который ухудшает данную программу, — отсутствие подсветки синтаксиса во время ввода кода в форму. Впрочем, после сохранения записи подсветка будет присутствовать при просмотре, что несколько улучшает ситуацию.

GCC GodBolt

GCC GodBolt — популярный интерактивный онлайн-compiler исключительно для С++ . Имеет простейший интерфейс и много настроек, включая опции, регулируемые с помощью ключей. Доступен выбор среди разных версий. Интересная особенность компилятора — возможность моментального перевода кода программы непосредственно на язык ассемблера.

А какой компилятор используете вы? Пишите в комментариях !

Материал подготовлен для студентов курса «Разработчик C++». Не забудьте пройти вступительное тестирование для записи на курс:

Источник: dzen.ru

Программа на Си для проверки числа: положительное или отрицательное

Программа на Си для проверки числа: положительное или отрицательное

Проверять, является ли число (введенное пользователем) отрицательным или положительным.

Какие нужны знания для понимания этой программы?

Потребуются знания по следующим темам на языке Си:

  1. Понятие об операторах.
  2. Оператор if…else.

Работа программы
Эта программа принимает от пользователя число и проверяет, является ли оно положительным, отрицательным или нулем.

Ноль или отрицательное — структура if else

Блок-схема

Объяснение программы

#include int main() < double num;

Сначала передается #include .

Директива #include сообщает препроцессору на Си о необходимости включения в компилятор содержимого файла, указанного во входном потоке, а затем продолжения работы с остальной частью исходного файла. Заголовочный файл может содержать любой валидный фрагмент программы на Си.

Читайте также:
Какая программа сжимает видео

Заголовочный файл stdio.h расшифровывается как “standard input output” («стандартный ввод/вывод»). В нем содержится информация, связанная с функциями ввода/вывода. Вот описание некоторых функций в stdio :

int main()

« int main » означает, что функция должна в конце выполнения вернуть какое-то целое число. При этом в конце программы возвращается 0, свидетельствуя об «успешном выполнении программы». В C89 main не указывался, а тип возвращаемого значения по умолчанию был int.

double num;

« double » — это тоже тип данных, который используется для представления чисел с плавающей запятой. Это 64-хбитный формат представления числа с плавающей запятой двойной точности, определяемый стандартом IEEE 754 для значения. Точность этого числа составляет 15 десятичных знаков.

printf(«Enter a number: «); scanf(«%lf»,

  1. Функция printf выводит инструкцию Enter a number («введите число»).
  2. В функции scanf для типа данных double используется %lf .

if (num

Здесь задействован вложенный оператор if . Вложенный If в языке программирования Си означает оператор If , помещенный внутрь другого оператора If . Вложенный If применяется на Си, когда нужно проверить условие внутри другого условия.

Было введено число 0.0, и в этом случае выводится you entered 0 («вы ввели 0»).

else printf(«You entered a negative number.»); > else printf(«You entered a positive number.»); return 0;

В этих строчках использован оператор else . Потому что, если бы было введено меньше 0.0, оператор else вывел бы you entered a negative number («вы ввели отрицательное число»).

Дальше идет второй оператор else , в случае если бы не было введено 0.0 или меньше 0.0. Тогда он вывел бы you entered a positive number («вы ввели положительное число»).

return 0 в функции main означает, что программа выполнена успешно.

Программа / исходный код с использованием «if….. else»

#include int main() < double num; printf(«Enter a number: «); scanf(«%lf», if (num else printf(«You entered a positive number.»); return 0; >

Вывод:

Та же задача решается с помощью вложенного оператора « if else »:

#include int main() < double num; printf(«Enter a number: «); scanf(«%lf», if (num < 0.0) printf(«You entered a negative number.»); else if (num >0.0) printf(«You entered a positive number.»); else printf(«You entered 0.»); return 0; >

Вывод:

  • Как сделать калькулятор на C
  • Перестановка двух чисел на Си
  • Для чего нужен указатель в Си?

Источник: nuancesprog.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru