C/C++
Помогите написать программу на си
Дан символьный файл f. В файле f не менее 2 компонентов. Определить, являются ли два первых символа файла цифрами. Если да, то установить, является ли число, образованное этими цифрами, четное. (заранее спасибо!)
#include
#include
#include
int main() {
FILE *f;
char c1, c2;
int num;
f = fopen("f.txt", "r");
if (f == NULL) {
printf("Ошибка открытия файла\n");
exit(1);
}
c1 = fgetc(f);
c2 = fgetc(f);
if (isdigit(c1) && isdigit(c2)) {
num = atoi(&c1);
num = num * 10 + atoi(&c2);
if (num % 2 == 0) {
printf("Число, образованное первыми двумя цифрами, четное\n");
} else {
printf("Число, образованное первыми двумя цифрами, нечетное\n");
}
} else {
printf("Первые два символа не являются цифрами\n");
}
fclose(f);
return 0;
}
made in ohio!Для решения данной задачи необходимо выполнить следующие шаги:
Открыть файл f с помощью функции fopen().
Считать первые два символа из файла f с помощью функции fgetc() и сохранить их в переменные.
Проверить, являются ли считанные символы цифрами с помощью функции isdigit().
Если оба символа являются цифрами, то преобразовать их в число с помощью функции atoi().
Проверить, является ли полученное число четным с помощью оператора %.
Вывести результат на экран.
Ниже приведен пример кода на языке Си, который решает данную задачу:
#include <stdio.h>
#include <ctype.h>
int main() {
FILE *f;
char ch1, ch2;
int num;
f = fopen("f.txt", "r");
ch1 = fgetc(f);
ch2 = fgetc(f);
if (isdigit(ch1) && isdigit(ch2)) {
num = (ch1 - '0') * 10 + (ch2 - '0');
if (num % 2 == 0) {
printf("Число %d четное\n", num);
} else {
printf("Число %d нечетное\n", num);
}
} else {
printf("Первые два символа не являются цифрами\n");
}
fclose(f);
return 0;
}
В этом примере файл f.txt открывается для чтения. Далее считываются первые два символа из файла, после чего проверяется, являются ли они цифрами. Если оба символа являются цифрами, они преобразуются в число, которое проверяется на четность. Результат выводится на экран. Если первые два символа не являются цифрами, выводится сообщение об ошибке.
Обратите внимание, что в коде используется функция fclose() для закрытия файла после того, как он был использован.
Открыть файл f с помощью функции fopen().
Считать первые два символа из файла f с помощью функции fgetc() и сохранить их в переменные.
Проверить, являются ли считанные символы цифрами с помощью функции isdigit().
Если оба символа являются цифрами, то преобразовать их в число с помощью функции atoi().
Проверить, является ли полученное число четным с помощью оператора %.
Вывести результат на экран.
Ниже приведен пример кода на языке Си, который решает данную задачу:
#include <stdio.h>
#include <ctype.h>
int main() {
FILE *f;
char ch1, ch2;
int num;
f = fopen("f.txt", "r");
ch1 = fgetc(f);
ch2 = fgetc(f);
if (isdigit(ch1) && isdigit(ch2)) {
num = (ch1 - '0') * 10 + (ch2 - '0');
if (num % 2 == 0) {
printf("Число %d четное\n", num);
} else {
printf("Число %d нечетное\n", num);
}
} else {
printf("Первые два символа не являются цифрами\n");
}
fclose(f);
return 0;
}
В этом примере файл f.txt открывается для чтения. Далее считываются первые два символа из файла, после чего проверяется, являются ли они цифрами. Если оба символа являются цифрами, они преобразуются в число, которое проверяется на четность. Результат выводится на экран. Если первые два символа не являются цифрами, выводится сообщение об ошибке.
Обратите внимание, что в коде используется функция fclose() для закрытия файла после того, как он был использован.
Макс Бароненков
спасибо большое!!!
Похожие вопросы
- Помогите написать программу на СИ
- Помогите пожалуйста написать программу на Си
- Написать программы на СИ
- Написать программу на Си, помогите!!!
- Работа со структурами. Написать программу для СИ
- Помогите плиз написать программу на Си Массив структур
- Написать программу на Си
- Помогите написать программу на языке Си
- Помогите написать программу на С
- Помогите написать программу на C++
num = atoi(&c1);
num = num * 10 + atoi(&c2);