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

Циклы - срочно - C++

26.06.2011, 20:39. Просмотров 901. Ответов 13
Метки нет (Все метки)

Пишу в Borland C++. Ежемесячная стипендия студента составляет А р., а расходы на проживание превышают стипендию и составляют В р. в месяц. Рост цен ежемесячно увеличивает расходы на 3%. Составьте программу расчета необходимой суммы денег, которую единовременно надо попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2011, 20:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Циклы - срочно (C++):

Заменить в коде циклы for на циклы while
int i, j, n; bool a; cin >> i >> n; for (i; i<n; i++) { a = true; for...

Срочно бы)
Работа с рядами(массива букв) Задание №1 1.Напечатать начальный ряд. ...

СРОЧНО
Надо написать программу на C++

Массивы, пж, срочно!(
Ребят, помогите пж( 1. Cгенерировать массив из 30 чисел, распечатать их по...

ООП-срочно!!!
Создать классы, подходящие для представления библиографических данных о...

Нужно срочно в С++
вообщем вот, не получается написать программу Смотрите фото. Заранее спасибо.

13
nameless
Эксперт С++
338 / 302 / 36
Регистрация: 16.06.2009
Сообщений: 486
26.06.2011, 21:24 #2
DeeK,

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
29
30
31
32
#include <iostream>
#include <cmath>
 
const int PERCENT = 3;
const int NUM_MONTHS = 10;
 
int main()
{
    float grant, costs, sum_costs;
 
    std::cout << "Input grant and costs" << std::endl;
    std::cin >> grant >> costs;
 
    sum_costs = costs;
 
    if (grant < costs)
    {
        for (int i = 1; i < NUM_MONTHS; i++)
        {
            costs = costs + costs / 100 * PERCENT;
            sum_costs += costs;
        }
 
        std::cout << "Costs: " << sum_costs << std::endl;
        std::cout << "Grant: " << grant << std::endl;
        std::cout << "More money: " << abs(sum_costs - 10 * grant) << std::endl;
        std::cin.get();
    }
 
    std::cin.get();
    return 0;
}
0
KIrill 2011
0 / 0 / 1
Регистрация: 15.06.2011
Сообщений: 4
26.06.2011, 21:43 #3
что означает 31 строка?
0
nameless
Эксперт С++
338 / 302 / 36
Регистрация: 16.06.2009
Сообщений: 486
26.06.2011, 21:45 #4
KIrill 2011, более чем подробно написано http://www.cplusplus.com/reference/iostream/istream/get/ ..
0
DeeK
0 / 0 / 0
Регистрация: 26.06.2011
Сообщений: 4
26.06.2011, 21:47  [ТС] #5
вот и я ничего не пойму (чайник, чего с меня взять). я вот как пишу -- <к примеру строки>

дана строка.вывести на экран количество букв К в последнем слове.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<conio.h>
#include<stdio.h>
#include<string.h>
main()
{
char str[255];
int i,j,k=0;
 
printf("Vvedite stroku: ");
gets(str);
for(i=0;i<strlen(str);i++)
 if (str[i]==' ') j=i;
for(i=j+1;i<strlen(str);i++)
if (str[i]=='k') k++;
printf("'k' v poslednem slove %i\n",k);
 
}
0
nameless
Эксперт С++
338 / 302 / 36
Регистрация: 16.06.2009
Сообщений: 486
26.06.2011, 21:53 #6
DeeK,

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 <stdio.h>
#include <conio.h>
#include <string>
 
#define MAX_SIZE 32
 
int main()
{
    char str[MAX_SIZE];
    int number = 0;
 
    printf("Input string: ");
    gets(str);
 
    int length = strlen(str);
 
    for (int i = 0; i < length; ++i)
        if (*(str + i) == 'k')
            number++;
 
    printf("Number: %d", number);
 
    _getch();
    return 0;
}
Упс, не прочел, что в последнем слове считаем..
0
OcbMuHor
Заблокирован
26.06.2011, 21:53 #7
Цитата Сообщение от KIrill 2011 Посмотреть сообщение
что означает 31 строка?
цель в коде - не завершать cmd.exe функция ввода символа(ов).

попробовал рекурсией, в чем ошибка?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
float Inflyaziya (float x, float y, float tmp, unsigned short i){
    if (10>i){
        ++i;
        x = x + x/100*3;
        tmp = tmp + x - y;
    }
    Inflyaziya (x, y, tmp, i);
}
 
int main ()
{
    unsigned short shetchik =0;
    float stypendia, rashod, pomosh_predkov=0;
    std::cout << "stypendia = " <<std::endl;
    std::cin >> stypendia;
    std::cout << "rashod = " <<std::endl;
    std::cin >> rashod;
    std::cout << "\nPomosh predkov = ";
    std::cout << Inflyaziya (rashod, stypendia, pomosh_predkov, shetchik);
    return 0;
}
0
nameless
Эксперт С++
338 / 302 / 36
Регистрация: 16.06.2009
Сообщений: 486
26.06.2011, 22:01 #8
OcbMuHor, у тебя рекурсивная функция не возвращает никакого значения..
0
DeeK
0 / 0 / 0
Регистрация: 26.06.2011
Сообщений: 4
26.06.2011, 22:03  [ТС] #9
Цитата Сообщение от nameless Посмотреть сообщение
DeeK,

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 <stdio.h>
#include <conio.h>
#include <string>
 
#define MAX_SIZE 32
 
int main()
{
    char str[MAX_SIZE];
    int number = 0;
 
    printf("Input string: ");
    gets(str);
 
    int length = strlen(str);
 
    for (int i = 0; i < length; ++i)
        if (*(str + i) == 'k')
            number++;
 
    printf("Number: %d", number);
 
    _getch();
    return 0;
}
Упс, не прочел, что в последнем слове считаем..



мне верхнюю прогу надо написать в таком же "стиле".
0
OcbMuHor
Заблокирован
26.06.2011, 22:04 #10
Цитата Сообщение от nameless Посмотреть сообщение
OcbMuHor, у тебя рекурсивная функция не возвращает никакого значения..
да, заметил уже. но меня испугала совем другая ошибочка
"рекурсия на всех путях выполнения, функция вызовет переполнение стека" это чревато, хотя скомпилировался, запускать пока боюсь))

мне верхнюю прогу надо написать в таком же "стиле".
Вы вообще в стиле Си пишете, и файлы заголовочные тоже "Сишные", а вроде как надо С++. с этого Ваш первый пост начинается.
0
nameless
Эксперт С++
338 / 302 / 36
Регистрация: 16.06.2009
Сообщений: 486
26.06.2011, 22:15 #11
DeeK,

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
29
30
31
32
#include <stdio.h>
#include <math.h>
#include <conio.h>
 
#define PERCENT 3
#define NUM_MONTHS 10
 
int main()
{
        float grant, costs, sum_costs;
 
        printf("Input grant and costs\n");
        scanf("%f%f", &grant, &costs);
 
        sum_costs = costs;
 
        if (grant < costs)
        {
                for (int i = 1; i < NUM_MONTHS; i++)
                {
                        costs = costs + costs / 100 * PERCENT;
                        sum_costs += costs;
                }
 
                printf("Costs: %f\n", sum_costs);
                printf("Grant: %f\n", grant);
                printf("More money: %f\n", abs(sum_costs - 10 * grant));
        }
 
        _getch();
        return 0;
}
0
OcbMuHor
Заблокирован
26.06.2011, 22:31 #12
гут у меня всё, вот если интересно товарищу пример рекурсивной функции
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>
 
/*float Inflyaziya (float x, float y, float tmp, unsigned short i){
    while (10>i){
        x = x + x/100*3;
        tmp = tmp + x - y;
        Inflyaziya (x, y, tmp, ++i);
    }
    return tmp;
}*/
 
int main ()
{
    unsigned short shetchik =0;
    float stypendia, rashod, pomosh_predkov=0;
    std::cout << "stypendia = " <<std::endl;
    std::cin >> stypendia;
    std::cout << "rashod = " <<std::endl;
    std::cin >> rashod;
    std::cout << "\nPomosh predkov = ";
    //std::cout << Inflyaziya (rashod, stypendia, pomosh_predkov, shetchik);
    for (shetchik; shetchik <10; shetchik++){
        rashod =rashod +rashod/100*3;
        pomosh_predkov = pomosh_predkov+ rashod - stypendia;
    }
    std::cout <<pomosh_predkov;
    return 0;
}
0
DeeK
0 / 0 / 0
Регистрация: 26.06.2011
Сообщений: 4
26.06.2011, 22:40  [ТС] #13
Спасиб огромное. до меня доходит как до валенка. Помогите пожалуйста еще с одной задачей.

Написать программу, которая вводит с клавиатуры двумерный массив по строкам и вычисляет среднее арифметическое его элементов
0
OcbMuHor
Заблокирован
26.06.2011, 23:27 #14
на смотри и делай как тебе надо
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
29
30
#include <iostream>
 
int main()
{
    /*int m, n;
    double **matrix = new double *[m];
    for (int i = 0; i<m; i++){ matrix[i] = new double [n]; }
    //Где m,n - размеренность двумерного массива.
    //Для освобождения памяти:
    for (int i = 0; i<m; i++){ delete[] matrix[i]; }
    delete[] matrix;*/
    
    //или статикой
    int g=0;
    const int i = 3;
    const int j=3;
    int matrix1 [j][i]={0};
    for (int k=0; k<j; k++){
        for (int h=0; h<i; h++){
            matrix1 [k][h]=++g;
        }
    }
    for (int k=0; k<j; k++){
        for (int h=0; h<i; h++){
            std::cout << matrix1 [k][h] <<", ";
        }
        std::cout <<"\n";
    }
    return 0;
}
Также поставь g++ вместо ++g и посмотри что выйдет в обоих вариантах.
0
26.06.2011, 23:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2011, 23:27
Привет! Вот еще темы с решениями:

Срочно....Турбо С
Помогите пожалуйста... Турбо СИ cos(x)+2 cos(cos(x))+3...

Оператор While срочно!!!
Даны целые положительные числа N и K. Используя только операции сложения и...

срочно экзамен...
1. Сумма цифр трехзначного числа кратна 7, само число также делится на 7....

2 последовательности (срочно)
1)дана последовательность из 2n символов. Выяснить в какой половине в первой...


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

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

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