Форум программистов, компьютерный форум CyberForum.ru

Неправильно выводятся данные - C++

Восстановить пароль Регистрация
 
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 231
24.12.2013, 02:02     Неправильно выводятся данные #1
Здравствуйте. Помогите, пожалуйста, исправить ошибку, я думаю, она в этой части программы, т. к. координаты выводятся неправильно, их меньше и они не правильны, так же неправильны индексы массива
C++ (Qt)
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
void massive(int** xy,int n)
{
printf("Vvedi n - kollichestvo vershin mnogougolnika ");
scanf("%d",&n);
printf("Vvedite koordinaty vershin:\n");
 
for(int k=0; k<n; k++)
 
   scanf("%f",&xy[k][0]);
   scanf("%f",&xy[k][1]);
 
printf("Koordinats: x[%d] = %5.2f;  y[%d] = %5.2f \n",k+1, xy[k][0], k+1, xy[k][1]);
 
}
 
void main()
{
int **xy;
int n,k,i;
float S,x,y,S2;
float S1=0;
 
int** points;
points=create_xy(n);
massive(points,n);
и т.д.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
24.12.2013, 02:06     Неправильно выводятся данные #2
А память кто будет выделять под массив (сразу оговорюсь, лучше это сделать в main)
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
24.12.2013, 09:57     Неправильно выводятся данные #3
Цитата Сообщение от -Arabella- Посмотреть сообщение
C++
1
scanf("%f",&xy[k][0]);
может потому что для ввода целых чисел надо юзать другой спецификатор?
Цитата Сообщение от MrGluck Посмотреть сообщение
А память кто будет выделять под массив (сразу оговорюсь, лучше это сделать в main)
предположу что это делается тут
Цитата Сообщение от -Arabella- Посмотреть сообщение
C++
1
points=create_xy(n);
но без описания не понять правильно ли

Добавлено через 1 минуту
я так полагаю что тут нехватает фигурных скобок, все 3 строки должны выполняться в цикле?
Цитата Сообщение от -Arabella- Посмотреть сообщение
C++
1
2
3
4
for(int k=0; k<n; k++)
 scanf("%f",&xy[k][0]); 
scanf("%f",&xy[k][1]);
 printf("Koordinats: x[%d] = %5.2f; y[%d] = %5.2f \n",k+1, xy[k][0], k+1, xy[k][1]);
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 231
24.12.2013, 20:22  [ТС]     Неправильно выводятся данные #4
aLarman,
Цитата Сообщение от aLarman Посмотреть сообщение
я так полагаю что тут нехватает фигурных скобок, все 3 строки должны выполняться в цикле?
Да, вв цикле считывание и печать координат
Цитата Сообщение от aLarman Посмотреть сообщение
но без описания не понять правильно ли
Вот описание создания массива
C++ (Qt)
1
2
3
4
5
6
7
int** create_xy(int n)
{
int** xy=new int*[n];
for(int i=0;i<n;i++)
xy[i]=new int[2];
return xy;
}
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.12.2013, 11:11     Неправильно выводятся данные #5
Цитата Сообщение от -Arabella- Посмотреть сообщение
Вот описание создания массива
все верно, работает сейчас? если нет, то обновленный код в студию
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 231
25.12.2013, 21:28  [ТС]     Неправильно выводятся данные #6
aLarman, К сожалению, все так же не работает, я поставила скобки и изменила %f на %d
вот код
C++ (Qt)
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
#include<stdio.h>
#include<math.h>
int** create_xy(int n)
{
int** xy=new int*[n];
for(int i=0;i<n;i++)
xy[i]=new int[2];
return xy;
}
...
void massive(int** xy,int n)
{
printf("Vvedi n - kollichestvo vershin mnogougolnika ");
scanf("%d",&n);
printf("Vvedite koordinaty vershin:\n");
 
for(int k=0; k<n; k++)
{
   scanf("%d",&xy[k][0]);
   scanf("%d",&xy[k][1]);
 
printf("Koordinats: x[%d] = %5.2f;  y[%d] = %5.2f \n",k+1, xy[k][0], k+1, xy[k][1]);
}
}
 
void main()
{
int **xy;
int n,k,i;
float S,x,y,S2;
float S1=0;
 
int** points;
points=create_xy(n);
massive(points,n);
...
}
И это выводит программа
Миниатюры
Неправильно выводятся данные  
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
26.12.2013, 01:38     Неправильно выводятся данные #7
Цитата Сообщение от -Arabella- Посмотреть сообщение
C++
1
2
3
4
5
int n,k,i; 
float S,x,y,S2; 
float S1=0; 
int** points; 
points=create_xy(n);
используете n которое не инициализировано (там сейчас мусор)

Цитата Сообщение от -Arabella- Посмотреть сообщение
printf("Koordinats: x[%d] = %5.2f; y[%d] = %5.2f \n",k+1, xy[k][0], k+1, xy[k][1]);
массив целочисленный а вывод для чисел с плавающей точкой 5.2f
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 231
26.12.2013, 08:02  [ТС]     Неправильно выводятся данные #8
Цитата Сообщение от aLarman Посмотреть сообщение
используете n которое не инициализировано (там сейчас мусор)
я же ео обозначила int...
Цитата Сообщение от aLarman Посмотреть сообщение
массив целочисленный а вывод для чисел с плавающей точкой 5.2f
координаты могут быть и дробными
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
26.12.2013, 12:02     Неправильно выводятся данные #9
Цитата Сообщение от -Arabella- Посмотреть сообщение
координаты могут быть и дробными
круто, а то что их в целочисленном массиве хранят норм?, тогда массив делайте double или float
Цитата Сообщение от -Arabella- Посмотреть сообщение
я же ео обозначила int...
это обявление, а инициализация это
C++
1
int n = 55;
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 231
26.12.2013, 20:03  [ТС]     Неправильно выводятся данные #10
Цитата Сообщение от aLarman Посмотреть сообщение
круто, а то что их в целочисленном массиве хранят норм?, тогда массив делайте double или float
Спасибо)) не подумала
Цитата Сообщение от aLarman Посмотреть сообщение
int n = 55;
А почему 55? У меня n надо вводить. Или это число ничего не значит?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.12.2013, 20:33     Неправильно выводятся данные #11
Цитата Сообщение от -Arabella- Посмотреть сообщение
У меня n надо вводить.
Ну так вводите, а потом уже в функцию передавайте:
C++
1
points=create_xy(n);
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
26.12.2013, 21:07     Неправильно выводятся данные #12
Цитата Сообщение от -Arabella- Посмотреть сообщение
это число ничего не значит?
Вы верно меня поняли, вот там в мэйне и сделайте ввод числа n а не в ф-ции massive(int** xy,int n), вы же это n все равно передаете
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 231
26.12.2013, 22:54  [ТС]     Неправильно выводятся данные #13
aLarman,
Спасибо большое за помощь, все поправила, как вы сказали, и все работает, и я разобралась
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 12:26     Неправильно выводятся данные
Еще ссылки по теме:

Неправильно выводятся данные структуры C++
Данные вводятся из файла на диске и выводятся в файл и на экран C++
C++ Не выводятся данные из текстового файла

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

Или воспользуйтесь поиском по форуму:
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
27.12.2013, 12:26     Неправильно выводятся данные #14
Цитата Сообщение от -Arabella- Посмотреть сообщение
все работает, и я разобралась

Не по теме:

это же хорошо

Yandex
Объявления
27.12.2013, 12:26     Неправильно выводятся данные
Ответ Создать тему
Опции темы

Текущее время: 06:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru