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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 233
#1

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

24.12.2013, 02:02. Просмотров 446. Ответов 13
Метки нет (Все метки)

Здравствуйте. Помогите, пожалуйста, исправить ошибку, я думаю, она в этой части программы, т. к. координаты выводятся неправильно, их меньше и они не правильны, так же неправильны индексы массива
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);
и т.д.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 02:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неправильно выводятся данные (C++):

Неправильно выводятся данные структуры - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; #define deathgant 7 using namespace std; union tag_value{ int...

Не работает функция синус и неправильно выводятся числа - C++
#include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;iomanip&gt; #include &lt;math.h&gt; #define MAX_RAND 0x7fff ...

Некорректно выводятся данные - C++
в програмке не выводятся значения для y. на экран выводится как x= -5.00 z= 5.00 y=-10.485428 x= -4.50 z= 4.50 y=-8.819977 x=...

На экран данные не выводятся - C++
ребят вот код #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string&gt; #include &lt;cmath&gt; #include...

Не выводятся данные из текстового файла - C++
Беру данные из блокнота, но при компиляции эти данные не выводится. В чём ошибка не могу понять.ПОдсажите пожалуйста. #include&quot;stdafx.h&quot; ...

Данные которые выводятся на экран не помещаются - C++
Имеется программа все работает. Но данные которые выводятся на экран не помещаются. Можно ли все данные которые выводятся, вывести в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
24.12.2013, 02:06 #2
А память кто будет выделять под массив (сразу оговорюсь, лучше это сделать в main)
aLarman
642 / 563 / 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
Сообщений: 233
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
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.12.2013, 11:11 #5
Цитата Сообщение от -Arabella- Посмотреть сообщение
Вот описание создания массива
все верно, работает сейчас? если нет, то обновленный код в студию
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 233
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
642 / 563 / 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
Сообщений: 233
26.12.2013, 08:02  [ТС] #8
Цитата Сообщение от aLarman Посмотреть сообщение
используете n которое не инициализировано (там сейчас мусор)
я же ео обозначила int...
Цитата Сообщение от aLarman Посмотреть сообщение
массив целочисленный а вывод для чисел с плавающей точкой 5.2f
координаты могут быть и дробными
aLarman
642 / 563 / 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
Сообщений: 233
26.12.2013, 20:03  [ТС] #10
Цитата Сообщение от aLarman Посмотреть сообщение
круто, а то что их в целочисленном массиве хранят норм?, тогда массив делайте double или float
Спасибо)) не подумала
Цитата Сообщение от aLarman Посмотреть сообщение
int n = 55;
А почему 55? У меня n надо вводить. Или это число ничего не значит?
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.12.2013, 20:33 #11
Цитата Сообщение от -Arabella- Посмотреть сообщение
У меня n надо вводить.
Ну так вводите, а потом уже в функцию передавайте:
C++
1
points=create_xy(n);
aLarman
642 / 563 / 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
Сообщений: 233
26.12.2013, 22:54  [ТС] #13
aLarman,
Спасибо большое за помощь, все поправила, как вы сказали, и все работает, и я разобралась
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
27.12.2013, 12:26 #14
Цитата Сообщение от -Arabella- Посмотреть сообщение
все работает, и я разобралась

Не по теме:

это же хорошо

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 12:26
Привет! Вот еще темы с ответами:

Работа с массивом - выводятся некорректный данные - C++
class A { public: int x; int y; }; int main(int argc, char* argv) { A a; for (int i=0;i&lt;sizeof(a)/sizeof(a);i++)

Почему не выводятся данные родительского класса - C++
помогите с кодом не могу понять почему не выводит данные родительского класса при при вызове дочернего вот код тут все понятно...

Справочник: данные из ячейки не выводятся на экран - C++
проблема в чём: данные из ячейки не выводятся на экран. Как это исправить? #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include...

Данные вводятся из файла на диске и выводятся в файл и на экран - C++
Данные вводятся из файла на диске и выводятся в файл и на экран. Имена входного и выход-ного файлов задаются в командной строке. Как это...


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

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

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