Написал вот такой код на visual-studio-2017:
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include "pch.h"
#include <iostream>
#include <vector>
#include <cmath>
#include <clocale>
#include <string>
#include "stdio.h"
#include <iomanip>
#include <fstream>
using namespace std;
int main() {
char *locale = setlocale(LC_ALL, "russian");
cout << "============================================== " << endl
<< "Введите 6 строк массива А. Каждая строка состоит из 4 вещественных чисел, разделенных пробелом." << endl
<< "Ожидание ввода..." << endl;
const int M = 6, N=4;
char A[1000];
double dA[M][N]{};
for (int i = 0; i < M; i++) {
gets_s(A);
char *strnum = strtok(A, " ");
int j = 0;
while (strnum != NULL)
{
dA[i][j] = atof(strnum);
j++;
strnum = strtok(NULL, " ");
}
}
for (int m = 0; m < M; m++) {
for (int n = 0; n < N; n++) {
cout << setprecision(2) << setiosflags(ios::fixed) << dA[m][n] << '\t';
}
return 0;
}
Все работает корректно на Visual studio. Однако при переносе в другую среду разработки и использовании компилятора MinGW на консоль и в файл выводятся числа без дробной части. Вот код для MinGW:
#include <iostream>
#include <vector>
#include <cmath>
#include <clocale>
#include <cstring>
#include <stdio.h>
#include <iomanip>
#include <fstream>
using namespace std;
int main() {
char *locale = setlocale(LC_ALL, "russian");
cout
<< "Введите 6 строк массива А. Каждая строка состоит из 4 вещественных чисел, разделенных пробелом." << endl
<< "Ожидание ввода..." << endl;
const int M = 6, N=4;
char A[1000];
double dA[M][N]{};
for (int i = 0; i < M; i++) {
gets(A);
char *strnum = strtok(A, " ");
int j = 0;
while (strnum != NULL)
{
dA[i][j] = atof(strnum);
j++;
strnum = strtok(NULL, " ");
}
}
cout << endl;
for (int m = 0; m < M; m++) {
for (int n = 0; n < N; n++) {
cout << setprecision(2) << setiosflags(ios::fixed) << dA[m][n] << '\t';
}
return 0;
}
При вводе матрицы, к примеру:
"1,01 1,2 4,5 4,1"
"1,7 1,1 1,1 0,01"
"1,7 1,1 1,1 0,01"
"1,7 1,1 1,1 0,01"
"1,7 1,1 1,1 0,01"
"1,7 1,1 1,1 0,01"
MinGW выводит:
1.00 1.00 4.00 4.00
1.00 1.00 1.00 0.00
1.00 1.00 1.00 0.00
1.00 1.00 1.00 0.00
1.00 1.00 1.00 0.00
1.00 1.00 1.00 0.00
Как это исправить? Спасибо за помощь.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всё не так просто как кажется =) Есть переменная It, так вот её нужно вставить вместо The body of the message starts here\r\n Вот код =)
На бесконечной вправо и вверх шахматной доске находится ладьяДва игрока передвигают ее по очереди
Это задание: вводится последовательность целых чиселОпределить количество элементов в наиболее длинной подпоследовательности подряд идущих...
Собственно, зачем мы пишем тип данных перед объявлением переменной-указателя? Если указатели хранят адрес ячейки, то какое им дело, что лежит...