Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2011, 16:34   #1
брилиант
 
Регистрация: 02.05.2011
Сообщений: 4
По умолчанию Ребят, кто шарит в С++ загляните...

В общем проблема не могу преобразовать массив из чар в инт. Показывает при компиляции ошибку при обработке в инт.
Само условие задачи: дана символьная строка, найти сумму всех входящих в нее цифр.
Помогите пожалуйста кому не трудно.
Код:
#include<iostream.h>
char NEWT[256];

char *rus(char*TEXT)
{
     CharToOem (TEXT,NEWT);
     return NEWT;
}

void main()
{
	ifstream in;
	ofstream out;
    char *mass;
	int summ;
    int n, j, i, o;
	cin>>n;
	mass= new char[n];
	for(j=0; j<n; j++)
	{
metka1: cout<<rus("Выберите тип ввода:\n 1-из файла\n 2- с клавиатуры")<<endl;
		cin>>i;
		if(i=1)
		{
			in.open(".txt");
			in>>mass[j];
			in.close();
		}
		if(i=2)
		{
			cin>>mass[j];
		}
		else goto metka1;
	}
	for(j=0; j<n; j++)
	{
		if(isdigit(mass[j]))
		{
		    summ=summ+atoi(mass[j]);
			summ++;
		cout<<<<summ<<endl;
		}
		else {
			cout<<rus("В вашей строке нет цифр!!!")<<endl;
		}
	}
metka2: cout<<rus("Выбирите место хранения данных:\n С- диск \n D- диск")<<endl;
		cin>>o;
		if(o='c')
		{
			out.open(".txt");
flag:{ out<<<<mass[j]<<endl;
	 out<<<<summ<<endl; }
	 if(o='d')
	 {
		 out.open("D:\результат.txt");
		 goto flag;
	 }
	 else goto metka2;
		}

}

Последний раз редактировалось брилиант; 03.05.2011 в 06:31.
брилиант вне форума Ответить с цитированием
Старый 02.05.2011, 17:56   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
#include <iostream>

using namespace std;

int main()
{
    string str;
    cin >> str;
    int summa = 0, number_str;
    for (int i = 0; i < str.length(); i++)
    {
        number_str = static_cast<int>(str[i]);
        if ((number_str >= 48) && (number_str =< 57))
           summa += number_str - 48;
    }
    cout << summa << endl;
}
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 02.05.2011, 19:03   #3
брилиант
 
Регистрация: 02.05.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Mandrivnyk Посмотреть сообщение
Код:
#include <iostream>

using namespace std;

int main()
{
    string str;
    cin >> str;
    int summa = 0, number_str;
    for (int i = 0; i < str.length(); i++)
    {
        number_str = static_cast<int>(str[i]);
        if ((number_str >= 48) && (number_str =< 57))
           summa += number_str - 48;
    }
    cout << summa << endl;
}
не работает, можно вот по подробнее проработать момент с функцией isdigit?
брилиант вне форума Ответить с цитированием
Старый 02.05.2011, 19:41   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
не работает
Что именно?
У меня все прекрасно считает.

ЗЫ Не сочти за труд -- оформи нормально код. В таком виде он нечитабелен.
ЗЗЫ Слово "выберите" пишется через "е"
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 03.05.2011, 06:33   #5
брилиант
 
Регистрация: 02.05.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Mandrivnyk Посмотреть сообщение
Что именно?
У меня все прекрасно считает.

ЗЫ Не сочти за труд -- оформи нормально код. В таком виде он нечитабелен.
ЗЗЫ Слово "выберите" пишется через "е"
У меня Visual C++ 6.0 может дело в ней, что код не заработал. При компиляции вашего кода показало 8 ошибок
брилиант вне форума Ответить с цитированием
Старый 03.05.2011, 13:35   #6
Danko
Пользователь
 
Регистрация: 20.04.2011
Сообщений: 13
По умолчанию

Какие ошибки показывает при компиляции?
Danko вне форума Ответить с цитированием
Старый 04.05.2011, 16:00   #7
брилиант
 
Регистрация: 02.05.2011
Сообщений: 4
По умолчанию

В общем я код переделала, вроде заработало но не совсем корректно, почему то при сложении цифр получается фигня всякая. Если я пишу цифры в начале строки то у меня выдает что сумма цифр равна числу с минусом "-", а если в конце пишу то все ок. В чем причина, помогите пожалста?!
Код:
#include<iostream.h>
#include<fstream.h>
#include<windows.h>
#include<stdlib.h>
#include<ctype.h>
char NEWT[256];

char *rus(char*TEXT)
{
     CharToOem (TEXT,NEWT);
     return NEWT;
}
int main(){
char str[100];
int i, j;
int n; 
int r;
int B[100];
cout<<rus("Bведите размер строки:")<<endl;
cin>>n;
r=0;
cout<<rus("Введите символы")<<endl;
  for(i=0; i<n; i++)
  {
	  cin>>str[i];
  }
for(i=0; i<n; i++)
{
#define isdigit (str[i])((str[i])>='0' && (str[i])<='9')
	for(j=0; j<n; j++)
		{
			B[j]=(str[i]-48);
			B[j]++;
            r=+B[j];
	
		}
}
		
		cout<<rus("Сумма символов равна: ")<<r<<endl;
		return 0;
}
брилиант вне форума Ответить с цитированием
Старый 04.05.2011, 16:31   #8
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

вместо
Код:
cout<<rus("Bведите размер строки:")<<endl;
cin>>n;
r=0;
cout<<rus("Введите символы")<<endl;
  for(i=0; i<n; i++)
  {
	  cin>>str[i];
  }
cin.getline(str,80);
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто шарит в 3D, ткните в литературу mutabor Свободное общение 0 03.03.2011 18:19
Класс Bass. Загляните и ответьте пжлст, кто знает .Phoenix Мультимедиа в Delphi 4 22.03.2010 13:39
Кто-нибудь шарит в Common Lisp? Нужна помощь. IGREK Помощь студентам 5 08.06.2008 23:46
Кто шарит в PHP Simply-Art PHP 3 20.05.2007 21:01