|
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 3
|
|
Не понимаю в чем ошибка29.04.2016, 21:07. Показов 1202. Ответов 4
Метки нет (Все метки)
задача заключается в том, чтобы ввести с клавы либо считать с файла двумерный массив вещественных чисел и вывести их на экран, так же нужно сосчитать среднее арифметическое указанного пользователем столбца и записать массив и расчет в отдельный файл. Вот. Дело в том что тут вещественные числа. Я все указала, float. Но. Когда вводишь с клавы последняя строчка выходит такой(скриншот). А когда сохраняешь в файл, там одни нули. С целыми числами ксттаи работает. А среднее арифметическое все равно целое число, не понятно почему. я уже не знаю что делать! заранее спасибо!
#include <cstdlib> #include <iostream> #include <fstream> using namespace std; void enter_array(float massiv[3][6]) { int i, k; cout << "\nEnter elements of array: \n"; for (i = 0; i < 3; i++) { for (k = 0; k < 6; k++) { cin >> massiv[i][k]; //пользователь вводит каждый элемент if (!cin.good()) { //не знаю что это cout << endl << "Vy vveli ne chislo." << endl; cin.clear(); cin.ignore(255, '\n'); break; //не знаю что это } } } cout << "\nArray in a matrix: \n"; for (i = 0; i < 4; i++) { for (k = 0; k < 5; k++) { cout << massiv[i][k] << " "; // выводим массив в виде матрицы } cout << endl; } } void open_file(float massiv[3][6]) { int i, k; std::ifstream input_file("massiv_1.txt"); //считать данные из файла for (i = 0; i < 18; i++) { for (k = 0; k < 6; k++) { input_file >> massiv[i][k]; } } cout << "\nArray in a matrix: \n"; for (i = 0; i < 4; i++) { for (k = 0; k < 5; k++) { cout << massiv[i][k] << " "; //показываем как выглядит данные из файла } cout << endl; } } void arith_mean(double massiv[3][6]) { int i, column, column_in_array, sum; float arithmetic_mean; sum = 0; arithmetic_mean = 0; cout << "\nSelect the column: \n"; cin>>column; column_in_array = column - 1; //потому что номер элемента в массиве начинается с нуля for (i = 0; i < 4; i++) { sum += massiv[i][column_in_array]; } arithmetic_mean = (sum) / 3; cout << "\nArithmetic mean is equal to: " << arithmetic_mean; FILE *f2; //создаем указатель на файл f2 = fopen("arithmetic_mean.txt", "w"); //открываем файл для записи fprintf(f2, "\n %d %d", arithmetic_mean, column); fclose(f2); //закрываем файл } void save_file(float massiv[3][6]) { int column; double arithmetic_mean; FILE *file1; file1 = fopen("massiv_2.txt", "w"); for (int l = 0; l < 3; l++) { for (int k = 0; k < 6; k++) { fprintf(file1, " %d", massiv[l][k]); } fprintf(file1, "\r\n"); } fclose(file1); cout << "\nSuccess!"; } int main(int argc, char** argv) { int choice; double massiv[3][6]; while (1) { //делаем бусконечный цикл printf("\n\n\nMENU:\n1. Enter array\n2. Open file\n3. Calculation of the arithmetic mean\n4. Save file\n5. Exit"); cout << "\n\n\nEnter the command "; cin>>choice; switch (choice) { case 1: enter_array(massiv); break; case 2: open_file(massiv); break; case 3: arith_mean(massiv); break; case 4: save_file(massiv); break; default: return 0; } } }
0
|
|
| 29.04.2016, 21:07 | |
|
Ответы с готовыми решениями:
4
Не понимаю в чем ошибка
Не понимаю, в чем ошибка |
|
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
|
||||||
| 29.04.2016, 21:56 | ||||||
Сообщение было отмечено anastaisha как решение
Решение
Доброго времени суток!
Чего-то хромает у вас то размерность массивов, то их тип. Я уж не говорю о такой передаче массивов в процедуры. (Хорошо что массив статика). Объявляете double в одном месте и тут же используете float в другом.Переменная sum вообще как int объявлена, хотя, как вы говорите нужны вещественные числа.Среда разработки не ругается? Попробуйте этот код: (поправил на скорую руку)
ЗЗЫ. Ощущение, что программа надергана из кусков чужого кода.
1
|
||||||
|
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 3
|
|
| 29.04.2016, 23:27 [ТС] | |
|
На счет double и float я прсто не все поменяла, извините. спасибо большое, посмотрю код) а про sum да, точно, я как то не внимательно писала, спасибо! А почему похоже на то что код скопирован кусками? И еще, что лучше использовать float или double? Спасибо большое!
0
|
|
|
47 / 47 / 31
Регистрация: 02.04.2016
Сообщений: 312
|
|||||||
| 29.04.2016, 23:58 | |||||||
|
Добавлено через 2 минуты например при такой записи компилятор уже ругается на неопределенный тип
1
|
|||||||
|
0 / 0 / 0
Регистрация: 29.04.2016
Сообщений: 3
|
|
| 30.04.2016, 00:29 [ТС] | |
|
Спасибо большое!
0
|
|
| 30.04.2016, 00:29 | |
|
Помогаю со студенческими работами здесь
5
Наследование, не понимаю в чем ошибка Наследование\перегрузка, не понимаю в чем ошибка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|