По заданным числам 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;
};

Объяснение кода листинга программы

  1. Вводится полный путь к файлу с числами.
  2. Создается переменная F для работы с файлом.
  3. Создается переменная first для хранения первого числа.
  4. Выводится запрос на ввод пути к файлу.
  5. С помощью функции scanf вводится путь к файлу и сохраняется в переменной filename.
  6. Открывается файл с помощью функции fopen.
  7. Выводится сообщение Input:.
  8. С помощью цикла while и функции fscanf считываются числа из файла и выводятся на экран.
  9. Перемещается позиция файла в начало с помощью функции fseek.
  10. Выводится сообщение Result:.
  11. С помощью цикла while и функции fscanf считываются числа из файла и вычисляются произведения с первым числом, затем выводятся на экран.
  12. Файл закрывается с помощью функции fclose.
  13. Функция get_from_file завершается.

Оцени полезность:

12   голосов , оценка 3.583 из 5
Похожие ответы