Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
J_I
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 9
1

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

08.05.2013, 18:38. Просмотров 1267. Ответов 3
Метки нет (Все метки)

Написать программу хранения
целочисленного, либо вещественного типа данных в переменной.
Выдаёт ошибку 'struct tag_var' has no member named 'value'. Что исправить?

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
#include <iostream.h>
#include <stdio.h>
struct tag_var{
       union tag_value;
       short type_var;
       };
   union tag_value
   { int var_i;
     float var_f;
     };
 int main()
 { struct tag_var var[2];
  var[0].type_var=0;
  var[0].value.var_i=10;
  var[1].type_var=1;
  var[1].value.var_f=4,6;
  for (int i; i<2; i++)
     { switch (var[i].type_var)
     { case 0: printf("var=%d\n", var[i].value.var_i); break;
       case 1: printf("var=%f\n", var[i].value.var_f); break;
       default: printf("Значение переменной не определено \n");
       }
       }
       return 0;
       }
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 18:38
Ответы с готовыми решениями:

Написать программу ввода/вывода данных целого, вещественного и символьного типа
&quot;Написать программу ввода/вывода данных целого, вещественного и символьного типа без модификаторов...

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

Написать программу в которой надо вывести матрицу вещественного типа
Надо вывести матрицу вещественного типа, найти её наибольший элемент и в конечной матрице эетот...

Написать программу для хранения входных и выходных данных
Написать программу, использующую ini-файл для хранения входных, выходных данных или промежуточных...

3
lemegeton
3047 / 1452 / 492
Регистрация: 29.11.2010
Сообщений: 2,893
08.05.2013, 18:42 2
Цитата Сообщение от J_I Посмотреть сообщение
Что исправить?
Программу.

У вас нет объявления идентификатора с именем value.
Что вы имеете в виду, обращаясь к нему?
0
J_I
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 9
08.05.2013, 18:49  [ТС] 3
я немного не понимаю эту часть. Её я переписывала из методички. Сама хочу разобраться. Куда будет правильно впихнуть её объявление? И зачем она тут вообще нужна
0
lemegeton
3047 / 1452 / 492
Регистрация: 29.11.2010
Сообщений: 2,893
08.05.2013, 20:06 4
Цитата Сообщение от J_I Посмотреть сообщение
Куда будет правильно впихнуть её объявление? И зачем она тут вообще нужна
Я вообще без понятия. Код -- слабо вменяемый бред. Нет, конечно, заставить компилироваться можно, но надо бы знать, что должно получиться-то в итоге?!

Цитата Сообщение от J_I Посмотреть сообщение
Написать программу хранения
целочисленного, либо вещественного типа данных в переменной.
Задание странное. Нужен тип данных, способный хранить либо одно либо другое на основе union?

Добавлено через 10 минут
Видимо, вам как-то так надо.
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
#include <iostream>
 
enum DataType {
  DATA_TYPE_DOUBLE,
  DATA_TYPE_INTEGER
};
 
union DoubleOrInteger {
  double doubleValue;
  int integerValue;
};
 
struct DoubleOrIntegerVariable {
  union DoubleOrInteger value;
  DataType valueType;
};
 
int main(int argc, char *argv[]) {
  DoubleOrIntegerVariable v;
  
  // или вот так для интеджера
  v.valueType = DATA_TYPE_INTEGER;
  v.value.integerValue = 3;
 
  // вот так для дабла
  v.valueType = DATA_TYPE_DOUBLE;
  v.value.doubleValue = 1.25;
  
  // использовать как-то так, с проверкой
  switch (v.valueType) {
    case DATA_TYPE_DOUBLE:
      std::cout << "Double: " << v.value.doubleValue << std::endl;
      break;
    case DATA_TYPE_INTEGER:
      std::cout << "Integer: " << v.value.integerValue << std::endl;
      break;
    default:
      std::cout << "Unknown data type." << std::endl;
      break;
  };
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2013, 20:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Переполнение переменной примитивного целочисленного типа
Экспериментирую в intellij idea!!!! Почему вот так: short a = (32767 + 1) - не компилится ...

Написать параллельную программу с общей переменной типа String
Написать параллельную программу с общей переменной типа String и двумя рабочими процессами....

Перевод переменной из вещественного типа в строковый
Задача: по нажатию кнопки вывести на метку и в текстовое поле значение переменной вещественного...

Присваивание целочисленного значения переменной типа std::string
имеется вот такой синтаксис: int tmp=0; std::string a=tmp++; if(max&gt;var) cout&lt;&lt;a&lt;&lt;edl; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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