Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Написать программу по поиску 2 последних минимальных элементов на си с указателями https://www.cyberforum.ru/c-beginners/thread1543885.html
Вот мой код. Объясните, пожалуйста, почему он не работает и как вообще пользоваться указателями на си? #include <stdio.h> #include <stdlib.h> #define n 10 int main() { int a,*i,*i1,*i2,*j; ...
Описать структуру CAR (марка машины, цвет, цена, максимальная скорость) C (СИ)
Не могу разобраться со структурами. Описать структуру CAR (марка машины, цвет, цена, максимальная скорость). Введите данные в массив, состоящий из шести элементов типа CAR. Выведите на экран...
C (СИ) Построить очередь и произвести операции над ней
Здравствуйте, нужно построить очередь на си. Написал программу, 3 часа пытаюсь найти ошибку, посмотрите пожалуйста, буду очень благодарен. #include <stdio.h> struct node {/*node of queue*/ ...
C (СИ) Найти значения функции По заданию написал прогу, она не считает почему. Где мой косяк? П. 5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. #include <conio.h> #include... https://www.cyberforum.ru/c-beginners/thread1543699.html
C (СИ) Дан числовой ряд и некоторое число ε. Найти сумму тех членов ряда, модуль которых больше или равен заданному ε https://www.cyberforum.ru/c-beginners/thread1543613.html
Подскажите,пожалуйста,в чем ошибка? #include<stdio.h> #include<math.h> #include<locale.h> main () {setlocale(LC_ALL,"rus"); double n=1.,sum1=0.,sum2=0.,eps; printf("Введите заданное число:");...
C (СИ) Произведение всех отрицательных чисел,убрать ошибки
Помогите убрать ошибки,где должен объявляться массив для того чтобы программа не крушилась?Условие задачи,нужно чтобы пользователь сам объявлял длину массива и считал произведение всех отрицательных...
Вычислить обратный корень нескольких чисел C (СИ)
Исходные данные Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 10^18), отделённых друг от друга произвольным количеством пробелов и переводов строк. Размер входного потока не превышает 256...
C (СИ) Найти натуральные числа делящихся нацело на заданные числа и находящихся в заданном интервале Найти 20 первых натуральных чисел, делящихся нацело на 13 или на 17, и находящихся в интервале, левая граница которого равна 500 https://www.cyberforum.ru/c-beginners/thread1543296.html
C (СИ) Известна масса каждого из 12 предметов. Определить общую массу всего набора предметов https://www.cyberforum.ru/c-beginners/thread1543294.html
Известна масса каждого из 12 предметов. Определить общую массу всего набора предметов.
C (СИ) Зацикливание при чтении с файла блоками int через fread() Программа для подсчета частоты повторений символов (блоков данных) и энтропии информации в произвольном файле. Если задать datablock как тип char (тоесть читать по байту), то обрабатывает файлы всех... https://www.cyberforum.ru/c-beginners/thread1543223.html
Mace
0 / 0 / 0
Регистрация: 10.12.2014
Сообщений: 16
0

Нужно из последовательности вещественных чисел найти то число, которое ближе к всего к заданному

03.10.2015, 23:40. Просмотров 350. Ответов 2
Метки (Все метки)

Здравствуйте, мне в моей программе нужно из последовательности вещественных чисел найти то число которое ближе всего к заданному. Код прилагается
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <locale.h>
#include <math.h> 
#define MAX  100
 
int arrsize(void)
{ 
  int code, n;
  printf("Введите количество элементов последовательности(Не должно превышать 100): ");
  do
   {
    fflush(stdin);
    code = scanf("%d",&n);
    if (code != 1)
    printf("Введены неверные данные. Повторите ввод\n");
   }while(code!=1);
   return n;
}
 
float indata(int n)
{
 int code,i;
 float num[n],ynum;
  for (i = 0;i < n; i++)
  { 
    do
      {
        printf("Введите %d число: ",i+1);
        fflush(stdin);
        code = scanf("%f",&num[i]);
        if (code != 1) 
          printf("Введены неверные данные. Повторите ввод\n");
      }while (code != 1);
  }
  for (i=0;i<n;i++)
  {
    printf("\n%f",&num[n]);
  }
  do
  {
    printf("\nВведите любое число: ");
    fflush(stdin);
    code = scanf("%f",&ynum);
    if (code != 1) printf("Введены неверные данные. Повторите ввод\n");
  }while (code != 1);
return num[n],ynum;
}
 
float calculate(int n,float num[n], float ynum)
{
  float min;
  int imin,i;
  min = num[0];
  imin = 0;
  for (i=0;i<n;i++)
  {
    if ((abs(num[i]-ynum)) < min) 
     {
       min = num[i];
       imin = i+1;        
     }    
  }
  return imin,min;
}
 
void result(int imin, float min)
{
    printf("\nНаиближайшое число к заданному %d число, со значением %f\n",imin,min);
}
 
int main()
{ 
  float num[MAX],ynum,min; //num[MAX] - последовательность чисел, ynum - заданное число,min - ближайшее число к заданному
  int n,imin;               //n - количество элементов, k - порядковый номер ближайшего к заданному числа  
    setlocale(LC_ALL,"Russian");
    n = arrsize();
    indata(n);
    calculate(n, &num[n], ynum);
    result(imin,min);
}
Однако в функции indata у меня почему-то массив num никак не записывает введенные данные и выводит постоянно 0. Можете объяснить в чем ошибка?

Вернуться к обсуждению:
Нужно из последовательности вещественных чисел найти то число, которое ближе к всего к заданному
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2015, 23:40
Готовые ответы и решения:

Дан массив вещественных чисел. Определитьпорядковый номер того из них, который ближе всего к заданному числу Х
Спасибо за помощь!

Найти число, которое ближе всего к целому
Добрый день! Помогите, пожалуйста, решить задачу Только каким-нибудь примитивным способом Дан...

Найти в последовательности число, которое ближе всех к целому числу
Дано натуральное число n и последовательность действительных чисел a1, a2, ..., an. Найти в...

Вывести то число, которое ближе всего к 10.
Помогите пожалуйста, пытался решить задачу через сравнение модулей разностей чисел, но что-то не...

2
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.