Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 53

Вывести двумерный массив с 3 знаками после запятой

10.03.2014, 23:26. Показов 2192. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет)

мне нужно вывести двумерный массив с 3 знаками после запятой

не получается(( пробовала по- разному
с принтф если большое число, то тупо формат выводит его.....почему-то
с cout пробовала,setprecision(3) не работает, ошибки нет, но выводит только целую часть
подскажите пжл
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
 
 
int i,j;
void outArr(float **arr, int MAXM, int MAXN) //pechat massiva
{
   for (j=0;j<MAXM;j++){
   for (i=0;i<MAXN;i++){
    printf( "%7.3f",arr[j][i]," ");
  //  cout <<setw(6)<<setprecision(3)<<arr[j][i]<<" ";
 // cout <<arr[j][i]<<" ";
   // cout endl;
   }
   printf("\n");
  }
}
//*************************************************
// generater
void generateArr(float **arr, int MAXM, int MAXN)
{
  float sum=0;
 
  for (i=0;i<MAXM;i++){
   for (j=0;j<MAXN;j++)
   {
    if (j==0) sum=0;
    arr[i][j]=(float)sum+(i+1)*(j+5)/(i+j+1);
    sum=(float)sum+arr[i][j];
 
    }
   }
   outArr(arr, MAXM,MAXN);
 
 
    }
 
 
 
//*******************************************8
//sortirovka
 
void bubbleSort(float **arr, int MAXM, int MAXN){
 // float t;
  for (int k=0;k<MAXM;k++)
  {
  for (i=0;i<MAXN;i++)
  {
    for (j=MAXN-2; j>=i;j--)
    {
     if (arr[k][j]<arr[k][j+1])
       {float t=arr[k][j];
    arr[k][j]=arr[k][j+1];
    arr[k][j+1]=t;
       }
    }
       }
     }
 
 
  outArr(arr,MAXM,MAXN);
}
 
void main()
{
   int MAXM, MAXN;
   float **a;
   int b=1;
   clrscr();
// proverka na vvod
//********************************************************
printf ("vvedite rasryadnost' matricy\n");
 
printf ("M ne bolee 10\n");
while ((!(cin>>MAXM)) || (MAXM<=0)|| (MAXM>10))
{
cin.clear();
while (cin.get()!='\n');
printf ("Oshibka vvoda!\n");
printf ("Povtorite vvod\n");
}
 
printf("N ne bolee 10\n");
while ((!(cin>>MAXN)) || (MAXN<=0)|| (MAXN>10))
{
cin.clear();
while (cin.get()!='\n');
printf ("Oshibka vvoda!\n");
printf ("Povtorite vvod\n");
}
 
 
//****************************************************
// proga
   cout<<"Generated array\n";
 
   generateArr(a,MAXM, MAXN);
    cout<<"After sorting\n";
   bubbleSort(a,MAXM,MAXN);
   getch ();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2014, 23:26
Ответы с готовыми решениями:

Вывести вещественное число с 4 знаками после запятой
Условие задачи: Введите 4 действительных числа и выведите их сумму с 4 знаками после запятой.

Вывести значение пераменной с шестью знаками после запятой
#include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; using std::fixed; #include &lt;conio.h&gt; #include...

Вывести сумму четырех чисел с 4 знаками после запятой
Задача 1. Сума В стандартном входном потоке дано 4 действительные числа. В стандартный выходной поток вывести их суму из 4 знаками...

6
76 / 78 / 41
Регистрация: 23.03.2011
Сообщений: 148
10.03.2014, 23:48
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iomanip>
using namespace std;
 
 
int i,j;
void outArr(float **arr, int MAXM, int MAXN) //pechat massiva
{
   for (j=0;j<MAXM;j++){
   for (i=0;i<MAXN;i++){
    printf( "%7.3f",arr[j][i]," ");
//     cout.flags(ios::fixed);
  //  cout <<setprecision(3)<<arr[j][i]<<" ";
   }
   printf("\n");
  }
}
//*************************************************
// generater
void generateArr(float **arr, int MAXM, int MAXN)
{
  float sum=0;
 
  for (i=0;i<MAXM;i++){
   for (j=0;j<MAXN;j++)
   {
    if (j==0) sum=0;
    arr[i][j]=(float)sum+(i+1)*(j+5)/(i+j+1);
    sum=(float)sum+arr[i][j];
 
    }
   }
   outArr(arr, MAXM,MAXN);
 
 
    }
 
 
 
//*******************************************8
//sortirovka
 
void bubbleSort(float **arr, int MAXM, int MAXN){
 // float t;
  for (int k=0;k<MAXM;k++)
  {
  for (i=0;i<MAXN;i++)
  {
    for (j=MAXN-2; j>=i;j--)
    {
     if (arr[k][j]<arr[k][j+1])
       {float t=arr[k][j];
    arr[k][j]=arr[k][j+1];
    arr[k][j+1]=t;
       }
    }
       }
     }
 
 
  outArr(arr,MAXM,MAXN);
}
 
void main()
{
   int MAXM, MAXN;
  // float **a;
   int b=1;
//   clrscr();
// proverka na vvod
//********************************************************
printf ("vvedite rasryadnost' matricy\n");
 
printf ("M ne bolee 10\n");
while ((!(cin>>MAXM)) || (MAXM<=0)|| (MAXM>10))
{
cin.clear();
while (cin.get()!='\n');
printf ("Oshibka vvoda!\n");
printf ("Povtorite vvod\n");
}
 
printf("N ne bolee 10\n");
while ((!(cin>>MAXN)) || (MAXN<=0)|| (MAXN>10))
{
cin.clear();
while (cin.get()!='\n');
printf ("Oshibka vvoda!\n");
printf ("Povtorite vvod\n");
}
 
float** a = new float *[MAXM];
    for (int i = 0; i < MAXM; i++)
        a[i] = new float [MAXN];
 
 
//****************************************************
// proga
   cout<<"Generated array\n";
 
   generateArr(a,MAXM, MAXN);
    cout<<"After sorting\n";
   bubbleSort(a,MAXM,MAXN);
   getch ();
}
посматрите правильно ли работает вот этот код
вроде бы выводит нужное количество знаков после запятой, насколько я помню setprecision(n) будет выводить n знаков (и целую и дробную часть) если не указать что нужно выводить n знаков после запятой, что осуществляется строкой cout.flags(ios::fixed);

и такой вопрос, я конечно новичёк в с++(да и вообще в програмировании) но как вы заставили работать setprecision(3) без подключения библиотеки iomanip?
0
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 53
11.03.2014, 00:15  [ТС]
магияяя)))
шучу) там подключено, не сначала скопировала)

Добавлено через 1 минуту
с принтф, если ввести 10 на 10
то он выводит %7,3f и все
0
76 / 78 / 41
Регистрация: 23.03.2011
Сообщений: 148
11.03.2014, 11:03
хммм странно, у меня нормально работает, сколько в принтэф укажешь знаков после запятой столько и напечатает (правда, кажется, из-за типа начиная с 7-го он будет печатать нули)
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2223 / 1425 / 420
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 6
11.03.2014, 11:13
Цитата Сообщение от Violetta Посмотреть сообщение
с cout пробовала,setprecision(3) не работает, ошибки нет, но выводит только целую часть
Следует зафиксировать десятичную точку:
C++
1
    cout << setiosflags(ios::fixed) << setprecision(4) << arr[j][i] << endl;
0
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 53
12.03.2014, 11:03  [ТС]
все равно только целую часть выводит(((
им причем если больше 4*4 то вообще не компилирует(
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
12.03.2014, 13:52
Цитата Сообщение от Violetta Посмотреть сообщение
C++
1
arr[i][j]=(float)sum+(i+1)*(j+5)/(i+j+1);
Так как i, j имеют тип int, то выражение (i+1)*(j+5)/(i+j+1) имеет целый тип и целое значение при любых i, j.
/ здесь обозначает целочисленное деление, например 20 / 3 равняется 6
C++
1
   arr[i][j]= (float)sum + (i+1)*(j+5)/(i+j+1);/* К sum прибавляется целое число. */
Чтобы получить float,
C++
1
 arr[i][j]= (float)sum +  (float)(i+1)*(j+5)/(i+j+1);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2014, 13:52
Помогаю со студенческими работами здесь

Как вывести квадратный корень с числа с 4-мя знаками после запятой
подскажите, пожалуйста, как вывести квадратный корень с числа с 4-мя знаками после запятой?

Вычислить сумму ряда, состоящего из N слагаемых, и вывести результат с M знаками после запятой
Вычислить сумму ряда, состоящего из N слагаемых, и вывести результат с M знаками после запятой. помогите пожалуйста завтра сдавать а я не...

Вычислить сумму ряда, состоящего из N слагаемых, и вывести результат с M знаками после запятой
Помогите с решением данной задачи:

Вычислить сумму ряда, состоящего из N слагаемых, и вывести результат с M знаками после запятой
Помогите написать две программы Вычислить сумму ряда, состоящего из N слагаемых, и вывести результат с M знаками после запятой. №1 ...

Вычислить сумму ряда, состоящего из N слагаемых, и вывести результат с M знаками после запятой
Помогите с решением данной задачи:


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru