Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Show2011
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 8
1

Строки

14.12.2011, 16:06. Просмотров 381. Ответов 9
Метки нет (Все метки)

Написать программу, которая принимает с клавиатуры 3 целых числа через запятую и вычисляет для них среднее арифметическое. Использовать приведение типов.
Как записать эти 5 чисел через запятую в строку, и что за приведение типов использовать скажите пожалуйста)))

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2011, 16:06
Ответы с готовыми решениями:

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
Сгенерировать две произвольные строки и определить, является ли какое-либо...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк
Есть динамический массив строк. Заполняется, т.е. размер его уже известен...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2
Сформировать динамический двумерный массив, заполнить его случайными числами и...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести...

Как считать строки из файла, если там больше одной строки?
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем,...

9
YouDoItWrong
47 / 47 / 24
Регистрация: 29.10.2011
Сообщений: 154
14.12.2011, 16:37 2
Ну как я понял, нужно считывать все в строку, а потом преобразовать char -> int ну или double если числа с плавующей точкой.

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <string>
 
int main() {
    std::string str;
    std::cin >> str;
    return 0;
}
считать можно как-то так.

Добавлено через 8 минут
http://www.cplusplus.com/doc/tutorial/typecasting/ Ну вот информация по type casting'у, помойму, именно это тебе нужно.
0
Show2011
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 8
14.12.2011, 17:03  [ТС] 3
записываю в строку, а как мне тут приведение нужно использовать, не понимаю что хотят =)
0
YouDoItWrong
47 / 47 / 24
Регистрация: 29.10.2011
Сообщений: 154
14.12.2011, 17:09 4
Я же написал, вы должны преобразовать строку в число. тоесть char в int.

Приведе́ние ти́па (type conversion) — преобразование значения переменной одного типа в значение другого типа. Выделяют явное и неявное приведения типов.
При явном приведении указывается тип переменной, к которому необходимо преобразовать исходную переменную.
При неявном приведении преобразование происходит автоматически, по правилам, заложенным в данном языке программирования.
Также в языке могут быть заданы специальные функции для приведения. Wikipedia.

А еще я дал ссылку на стать по type casting'у (Приведению типов), если не устраивает англоязычный ресурс, могу дать ссылку на русский
0
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
14.12.2011, 17:24 5
Цитата Сообщение от Show2011 Посмотреть сообщение
принимает с клавиатуры 3 целых числа через запятую
Цитата Сообщение от Show2011 Посмотреть сообщение
Как записать эти 5 чисел
Так сколько чисел-то?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
    
int main(void){
    int a, b, c;
    char buf[BUFSIZ];
    
    while ( printf("Three comma separated values: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ){
        if ( sscanf(buf, "%d,%d,%d", &a, &b, &c) != 3 ){
            fprintf(stderr, "Wrong input!\n");
            continue;
        }
        printf("Average: %.1f\n", ((double)(a + b + c)) / 3.0);
    }
    
    return 0;
}
0
YouDoItWrong
47 / 47 / 24
Регистрация: 29.10.2011
Сообщений: 154
14.12.2011, 17:24 6
Ну вот первое что в голову пришло.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
int main() {
    string str, subString;
    vector<int> nums;
    int tmp = int();
    cin >> str;
    for(int i = 0; i < str.length(); i++) {
        if(str[i] == ',') {
            subString = str.substr(tmp,i);
            nums.push_back(atoi(subString.c_str()));
            tmp = i+1;
        }
    }
 
    subString = str.substr(tmp,str.length()-1);
    nums.push_back(atoi(subString.c_str()));
 
    for(int i = 0; i < nums.size(); i++) {
        cout << nums[i] << " ";
    }
 
    return 0;
}
0
YouDoItWrong
47 / 47 / 24
Регистрация: 29.10.2011
Сообщений: 154
14.12.2011, 17:35 7
Ну и среднее арифметическое.
C++
1
2
3
4
#include <numeric>
...
    cout << std::accumulate(nums.begin(), nums.end(), 0)/nums.size() << endl;
...
0
Show2011
0 / 0 / 0
Регистрация: 14.12.2011
Сообщений: 8
14.12.2011, 17:37  [ТС] 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <math.h>
#include <conio.h>
#include <string>
 
using namespace std;
int main()
{
    int i; double S=0;
    char str[6];
    char tmp;
    cout<<"Enter the parameters:"<<endl;
    gets(str);
    puts(str);
    for(i=0;i<6;i=i+2) {
        tmp=str[i];
        cout<<"temp="<<tmp<<endl;
        cout<<"temp="<<double(tmp)<<endl;
        S=S+(int)tmp; 
    }
    S=S/3;
    cout<<"Result="<<S<<endl;
    getch();
    return 0;
}
сделал так, но приведение типов не работает, если ввожу 1,1,1 то он переводит 1 в 49, а нужно 1 в 1... как сделать это приведение..

Добавлено через 1 минуту
оу, спасибо, щас гляну))

Добавлено через 13 секунд
не видел что уже прислал)
0
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
14.12.2011, 18:28 9
Была в С такая функция int atoi(const char *s);
Например:
C++
1
2
3
4
5
6
7
8
9
10
#include "stdlib.h"
#include <iostream>
using namespace std;
int main(void){
    char Str[] = "12";
    int k = atoi(Str);
 
    cout << k << endl;
    return 0;
}
Будет полезно или нет решайте сами...
0
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
14.12.2011, 19:04 10
Цитата Сообщение от Dr.Urban Посмотреть сообщение
Была в С такая функция int atoi(const char *s);
По моему скромному мнению функция скорее вредная. Никакой возможности проверить, насколько правильно она отработала. Если строка начинается не с цифры (ну или знака '-' за которым должна быть цифра) - вернёт 0, если с цифры - вернёт число состоящее из цифр от первой до той, за которой идёт буква, символ, да что угодно... И в случае переполнения просто неверный результат вернёт. Если уж на то пошло, лучше strtol() использовать...
0
14.12.2011, 19:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2011, 19:04

Чтение через fscanf_s части строки с пробелом (и запись этой же строки)
нужно записать в файл строку, содержащую через табуляцию int, char, char, char,...

Прибавить ко всем элементам каждой строки максимальное значение этой строки
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив,...

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A
&quot;Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся...


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

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

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