Помогите с кодом в С++
первый код:
// 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;
}
прошу помоги . очень нужна помощь
Код:
//#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;
}
#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;
}
Здесь не один программист не поможет тебе найти ошибку, т.к. с кодом такой сложности не приходилось сталкиваться не одному специалисту. Операционная система WIN7 имеет более простой код, и тем не менее каждый день кто нибудь находит в ней баг.
там два разных кода а не один большой!)
Ты, что прикалываешься? Отредактируй свой пост. Зачеркнутый код - нужен/не нужен? Если не нужен удали его. Трудно вставить код в тег "код c++" и отдельно для каждого вопроса?
епона мать *цензура*
сори на форуме не давно не нашел с первго раза где редактировать))))
спасибо большое за помощь:):):):) учту на будущие:))