Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6303
Последний выпуск: 19.06.2015

Помогите с кодом в С++

82K
13 декабря 2012 года
__VT_
12 / / 03.10.2012
помогите (( не могу найти ошибку:(
первый код:
// gsrd.cpp: определяет точку входа для консольного приложения.
//


#include "stdafx.h"
#include "Windows.h"

#include <crtdbg.h>
#include <stdio.h>
#include <math.h>
#include <clocale>
#include <memory.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <string.h>

#include <iostream>
using namespace std;

void stroka(char a[256])
{
cout<<"Введите строку:";
getch();
gets(a);
getchar();
}

int *obrabotka(int g, int h, char a[256], int q[2])
{
for (int i=0;i<strlen(a);i++)
{
if ((a=='а')||(a=='о')||(a=='у')||(a=='ы')||(a=='э')||(a=='я')||(a=='е')||(a=='ё')||(a=='ю')||(a=='и'))
{
g++;
if (a=='а')
{
h++;
}
}


}
q[1]=g;
q[2]=h;
return q;
}
void danie(int q[2])
{
cout<<"Гласных символов в строке "<<q[1]<<endl ;
cout<<"Из них символов а "<<q[2]<<endl;

}
int _tmain(int argc, _TCHAR* argv[])
{ SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char a[256];
int g=0,h=0,flag=0,q[2];
int menu=0;
cout<<"Программа считает гласные символы в строке"<<endl;
while (menu!=4)
{ cout<<" Меню:\n1 Ввести строку.\n2 обработка данных.\n3 вывод данных на экран\n4 выход\n";
while (!(cin>>menu))
{
cin.clear();
while (cin.get() != '\n');
cout<<"Неверно выбрано значение меню, выберете заново:"<<endl;
}
switch (menu)
{
default:
break;
case 1:
flag=1;

stroka(a);

break;
case 2:
if(flag==1)
{
obrabotka (g,h,a,q);
}
else
{ cout<<"не введена строка"<<endl;
}
break;
case 3:
if(flag==1)
{
danie(q);
}
else
{cout<<"не введена строка"<<endl;
}
break;
case 4:
system("cls");
break;
}
}

return 0;
}


прошу помоги . очень нужна помощь
445
14 декабря 2012 года
Meander
487 / / 04.09.2011
В этом коде много ошибок. Тебе следует повнимательнее почитать литературу по всем функциям и конструкциям которые ты используешь. Если вопрос по логике работы программы, то весь код не обязательно выкладывать, спрашивай по пунктам о способах реализации нужных тебе функций. И используй кнопку "{...}" и язык "C++", когда вставляешь код.

Код:
//#include "stdafx.h"//подключить, если без этого не работает
#include "Windows.h"//SetConsoleCP SetConsoleOutputCP
//#include <crtdbg.h>
//#include <stdio.h>
//#include <math.h>
//#include <clocale>
//#include <memory.h>
//#include <stdlib.h>
//#include <time.h>
//#include <conio.h>//getch()
//#include <string.h>
#include <iostream>

using namespace std;
//в списке параметров не должно быть объявления массива
//достаточно передать указатель на его первый элемент
void stroka(char *a)
{
  cout  <<  "Введите строку: ";
  cin >> a;//получить строку сразу можно таким способом
}
//не надо ничего возвращать, просто изменим параметр q
//в списке параметров не должно быть объявления массива
//достаточно передать указатель на его первый элемент
void obrabotka(char *a, int *q)
{
  int g = 0, h = 0;
  for (int i=0;i<strlen(a);i++)
  {
    if ((a[i]=='а')||(a[i]=='о')||//ты же строку сканируешь?
        (a[i]=='у')||(a[i]=='ы')||//значит надо перебрать каждый элемент a[i]
        (a[i]=='э')||(a[i]=='я')||
        (a[i]=='е')||(a[i]=='ё')||
        (a[i]=='ю')||(a[i]=='и'))
    {
      g++;
      if (a[i]=='а') h++;
    }
  }
  q[0] = g;//индекс массивов
  q[1] = h;//начинается с 0
}

void danie(int *q)
{
  cout << "Гласных символов в строке " << q[0] << endl;
  cout << "Из них символов а " << q[1] << endl;
}

//int _tmain(int argc, _TCHAR* argv[])
int main(int argc,char* argv[])
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  char a[256];
  int //g    = 0,//лишняя переменная
      //h    = 0,//лишняя переменная
      //flag = 0,//лишняя переменная т.к. не ввести строку не получится
      q[2],//q[0] - Гласных; q[1] - Символов 'а'
      menu = 0;

  cout << "Программа считает гласные символы в строке" << endl;
  cout << " Меню:\n1 Ввести строку.\n2 обработка данных.\n3 вывод данных на экран\n4 выход\n";

  while (menu!=4)
  {
    cout << "Введите пункт меню: ";
    cin >> menu;

    switch (menu)
    {
     case 1:
              stroka(a);
              break;
     case 2:
              obrabotka (a,q);
              break;
     case 3:
              danie(q);
              break;
     case 4:
              system("cls");
              break;
     default:
              cout << "Неверно выбрано значение меню!" << endl;
              break;
    }
  }
  return 0;
}
445
13 декабря 2012 года
Meander
487 / / 04.09.2011
Здесь не один программист не поможет тебе найти ошибку, т.к. с кодом такой сложности не приходилось сталкиваться не одному специалисту. Операционная система WIN7 имеет более простой код, и тем не менее каждый день кто нибудь находит в ней баг.
82K
13 декабря 2012 года
__VT_
12 / / 03.10.2012
там два разных кода а не один большой!)
445
13 декабря 2012 года
Meander
487 / / 04.09.2011
Ты, что прикалываешься? Отредактируй свой пост. Зачеркнутый код - нужен/не нужен? Если не нужен удали его. Трудно вставить код в тег "код c++" и отдельно для каждого вопроса?
459
13 декабря 2012 года
cronya
420 / / 03.01.2009
епона мать *цензура*
82K
14 декабря 2012 года
__VT_
12 / / 03.10.2012
сори на форуме не давно не нашел с первго раза где редактировать))))
82K
16 декабря 2012 года
__VT_
12 / / 03.10.2012
спасибо большое за помощь:):):):) учту на будущие:))

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог