По заданным числам a1, ... an вычислить: a1a1, a1a2, a1a3, ... , a1an - C (СИ)
Формулировка задачи:
Даны натуральное число n, действительные числа a1,...,an. Вычислить: a1a1, a1a2, a1a3,...,a1an; Помогите пожалуйста! Буду благодарен!!!
Мне хотя бы понять суть
если кому не сложно помочь с меню, которое выбирает с консоли ли числа так считать или с файла
Решение задачи: «По заданным числам a1, ... an вычислить: a1a1, a1a2, a1a3, ... , a1an»
textual
Листинг программы
void get_from_file(void)
{
/* Вводим полный пусть к файлу с числами */
char filename[50]; /* Имя файла для п.1 */
FILE * F;
float temp;
float first;
printf("\nGet full path to file: ");
scanf("%s", filename);
F = fopen(filename, "r"); /* Открываем файл */
n=0;
printf("\nInput:\n");
/* Выводим исходные числа */
while (fscanf(F, "%f", &temp)==1)
{
if (n==0) first=temp;
printf("%.2f ", temp);
n++;
}
fseek(F, 0, 0);
printf("\nResult:\n");
/* Просто перечитываем ещё раз файл и выводим обработанные данные */
/* Необходимости динамически создавать массив нет */
while (fscanf(F, "%f", &temp)==1)
{
printf("%.2f ", temp*first);
}
printf("\n\n");
fclose(F);
return;
};
Объяснение кода листинга программы
- Вводится полный путь к файлу с числами.
- Создается переменная
Fдля работы с файлом. - Создается переменная
firstдля хранения первого числа. - Выводится запрос на ввод пути к файлу.
- С помощью функции
scanfвводится путь к файлу и сохраняется в переменнойfilename. - Открывается файл с помощью функции
fopen. - Выводится сообщение
Input:. - С помощью цикла
whileи функцииfscanfсчитываются числа из файла и выводятся на экран. - Перемещается позиция файла в начало с помощью функции
fseek. - Выводится сообщение
Result:. - С помощью цикла
whileи функцииfscanfсчитываются числа из файла и вычисляются произведения с первым числом, затем выводятся на экран. - Файл закрывается с помощью функции
fclose. - Функция
get_from_fileзавершается.