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

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

Войти
Регистрация
Восстановить пароль
 
АнастасияПять
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 12
#1

Почему значения таблицы которые не подходят под условия, выдают какие то символы, вместо того чтобы не появляться вообще - C++

13.11.2013, 20:16. Просмотров 189. Ответов 0
Метки нет (Все метки)

#include "stdafx.h"
#include <iostream>
#include <sstream>
#include <cstring>
#include <conio.h>


using namespace std;

struct knigizd //ОПИСЫВАЕМАЯ СТРУКТУРА
{
char AK[30]; // переменная "автор книги"
char NK[30]; // переменная "название книги"
double tir; // переменная "тираж"
double cena; // переменная "цена"
double DD; // переменная "день сдачи издательства в печать"
double DM; // переменная "месяц сдачи издательства в печать"
double DG; // переменная "год сдачи издательства в печать"
};
void input(int n,knigizd* str) // Подпрограмма ввода
{
setlocale (LC_ALL, "Russian");
cout<<"Здравствуйте!Имеется информация о книжном издательстве, "<<
"где осуществляется поиск по условия"<<endl;
for(int i=0;i<n;i++)
{
cout<<"Введите исходные данные через пробел, автора книги,"<<
"название книги,тираж,цену книги за 1 экземпляр, "<<
"день сдачи издания в печать, "<<
"месяц сдачи издания в печать,год сдачи издания в печать"<<endl;

cin>>str[i].AK>>str[i].NK>>str[i].tir>>str[i].cena>>str[i].DD>>str[i].DM>>str[i].DG; // Ввод массива структур
}
}
void output(int n,knigizd* str, int m,knigizd* str1,int k,knigizd* str2) // Подпрограмма вывода результатов
{
setlocale (LC_ALL, "Russian");
// Вывод исходного массива структур:
cout<<"Автор книги Название книги Тираж Цена День сдачи Месяц сдачи Год сдачи "<<endl;
for (int i=0;i<n;i++)
{
cout<<str[i].AK<<" "<<str[i].NK<<" "<<str[i].tir<<" "<<str[i].cena<<" "<<str[i].DD<<" "<<str[i].DM<<" "<<str[i].DG<<endl;
}

cout<<"Автор книги Название книги Тираж Цена День сдачи Месяц сдачи Год сдачи "<<endl; // Вывод массива структур, издания которые сданны в печать зимой:
for (int j=0;j<m;j++)
{
cout<<str1[j].AK<<" "<<str1[j].NK<<" "<<str1[j].tir<<" "<<str1[j].cena<<" "<<str1[j].DD<<" "<<str1[j].DM<<" "<<str1[j].DG<<endl;
}
cout<<"Автор книги Название книги Тираж Цена День сдачи Месяц сдачи Год сдачи "<<endl; // Вывод массива структур, издания тираж которых больше среднего:
for (int s=0;s<k;s++)
{
cout<<str2[s].AK<<" "<<str2[s].NK<<" "<<str2[s].tir<<" "<<str2[s].cena<<" "<<str2[s].DD<<" "<<str2[s].DM<<" "<<str2[s].DG<<endl;
}
}

void Search_W(int n,knigizd* str, int m,knigizd* str1) // Попрограмма поиска изданиц, сданных в печать зимой
{ int j=0;
for(int i=0;i<n;i++)
{ //cout<<"str="<<str[i].DM<<endl;
if ((str[i].DM == 12) || (str[i].DM == 1) || (str[i].DM == 2) ) // Если хоть одно значение переменной "месяц сдачи", попадает под условие
{
str1[j]=str[i]; // то в значения массива str1 попадает значения исходного массива, которые удовлетворяют условию
j++; // счетчик увеличивается на 1
//cout<<"j="<<j<<endl;
}
}
m=j-1; // длинна массива уменьшается
// cout<<"m="<<m<<endl;
// cout<<"str1="<<str1<<endl;
}
// Подпрограмма вычисления среднего значения:
void Count_avg(int n,knigizd* str, double &Avg_all )
{
Avg_all = 0; // Переменная среднего значения обнуляется
for(int i=0;i<n;i++) // Цикл по исходному массиву
{
Avg_all=Avg_all+str[i].tir; // Значения переменной "тираж" суммируются и записываются в переменную среднего знач.
}
Avg_all = Avg_all/n; // Переменная среднего знач. делится на длинну массива и получается итоговый ответ
// cout<<"Avg_all="<<Avg_all<<endl;
}
// Попрограмма поиска изданий, тираж которых больше среднего значения:
void Search_avg (int n,knigizd* str,int k,knigizd* str2,double Avg_all)
{
int s=0;
for(int i=0;i<n;i++)
{
if (str[i].tir > Avg_all) // Если значение переменной "тираж" больше выше вычисленного среднего значения
{
str2[s]=str[i]; // то в массив str2 записываются те значения которые удовлетворяют условию
s++; // счетчик увеличивается
}
}
k = s - 1; // длинна массива уменьшается
}
// Подпрограмма решения задачи, вызывающая модули нижнего уровня:
void solution(int n,knigizd* str, int m,knigizd* str1,int k,knigizd* str2, double Avg_all)
{ Search_W(n,str,m,str1);
Count_avg(n,str,Avg_all);
Search_avg(n,str,k, str2, Avg_all);
}
int main() // Головная программа
{ setlocale (LC_ALL, "Russian");
int n;
cout<<"Введите размер таблицы:"<<endl;
cin>>n;
knigizd* str=new knigizd[n]; // Создание динамического исходного массива
int m;
m=n; // Длинна массива str1 принимает значение длинны исходного массива
knigizd* str1=new knigizd[m]; // Создание динамического массива str1
int k;
k=n;
knigizd* str2=new knigizd[k]; // Создание динамического массива str2
double Avg_all=0; // Объявление переменной среднего значения
input(n,str); // Вызывает подпрограмму ввода данных
solution(n,str,m,str1, k,str2,Avg_all); // Вызывает подпрограмму решение задачи
output(n,str,m,str1,k,str2); // Вызывает подпрограмму вывода результата
}
Миниатюры
Почему значения таблицы которые не подходят под условия, выдают какие то символы, вместо того чтобы не появляться вообще  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 20:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему значения таблицы которые не подходят под условия, выдают какие то символы, вместо того чтобы не появляться вообще (C++):

Диферинциальное уравнение: найти все корни, которые подходят под начальные значения - Дифференциальные уравнения
найти все корни которые подходят под начальные значения я только нашел корни характеристического уравнения к1=л2=1 ...

вместо того чтобы выдавать выпадающее меню под нужным оно под главной выдает хотя в скачиваемом файле все правильно. - HTML, CSS
Проблема такая, скачал меню но вместо того чтобы выдавать выпадающее меню под нужным оно под главной выдает хотя в скачиваемом файле все...

Почему при копировании из Matcad 15 в Word вместо русских букв получаются какие-то "каракули" - непонятные символы вместо букв - MathCAD
Я пользуюсь Matcad 15. Почему при копировании набранного текста из рабочей области Matcad 15 в документ Word вместо русских букв получаются...

Почему при попытки считывания выдаёт какие-то непонятные символы, а не те, которые требовались? - C++
#include &lt;cstdio&gt; #include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; int main () { double...

Как прервать процессы, имя и PID которых подходят под условия? - Bash
Кто может помогите написать 2 программы. 1. На языке unix shell написать программу, которая прерывает все процессы, имя которх начинается...

Какие платформы баз данных больше подходят под быстрый C++? - Базы данных
Сейчас занимаюсь(скорее интересуюсь) разработкой сайта на C++. Скорость вычисления у него значительно превосходит PHP. И смотрю в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 20:16
Привет! Вот еще темы с ответами:

пропарсить строки и вытащить куски текста которые подходят под шаблон - C#
Надо пропарсить строки и вытащить куски текста которые подходят под шаблон (кавычки это тоже в шаблон) &quot;?.dds&quot; Вот что накалякал: ...

Вместо текста, выводятся какие-то символы - C (СИ)
Написал простую программку по выводу текста и одной переменной, как положено скомпилировал её и вывел. В результате, в место текста,...

Почему вместо Hello World какие то китайсские каракули - C++ WinAPI
в окне должна быть надпись хелло ворлд а вместо этого получаю какие то каракули хотя код копировал из книжки. #include &lt;windows.h&gt; ...

Спрятать форму вместо того, чтобы закрыть - C#
Не подскажите как сделать так чтобы когда я нажимал закрыть (X) у меня программа просто Hide();


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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