Форум программистов, компьютерный форум CyberForum.ru

на языке с - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
10.11.2009, 18:49     на языке с #1
кто сможет помогите пожалуйста!Даны 3 числа а,в,с.Найти значение минимального отклонения каждого из них от среднего арифметического.Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
10.11.2009, 19:03     на языке с #2
ну сначала сложи 3 числа и на 3 раздели, а потом задай 3 переменные ota, otb и otc и присвой им значение модуля разности среднего арифметического и числа, сча код напишу

Добавлено через 4 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
 
void main();
{
   float a,b,c,ota,otb,otc,srar;
   printf("input a:");
   scanf("%f", &a);
   printf("\ninput b:");
   scanf("%f", &b);
   printf("\ninput c:");
   scanf("%f", &c);
   srar=(a+b+c)/3;
   ota=fabs(a-srar);
   otb=fabs(b-srar);
   otc=fabs(c-srar);
   printf("\n a otlichaetsa ot sr. arifm na %d", ota);
   printf("\n b otlichaetsa ot sr. arifm na %d", otb);
   printf("\n c otlichaetsa ot sr. arifm na %d", otc);
   cin.get();
}
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
11.11.2009, 09:49  [ТС]     на языке с #3
Огромное вам спасибо.Но мы только начали изучать этот язык и для меня это еще сложновато.А возможно эту задачу решить с помощью разветвляющегося алгоритма?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
11.11.2009, 10:08     на языке с #4
снег, а кого ветвлять собрался?
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
11.11.2009, 10:11  [ТС]     на языке с #5
Задание такое,что задачу нужно решить с помощью разветвляющегося алгоритма(
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
11.11.2009, 10:17     на языке с #6
Изменив немного программу Iworb'a - вот так
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<conio.h>
#include<stdio.h>
#include<iostream.h>
 
void main();
{
   float a,b,c,ota,otb,otc,srar;
   printf("input a:");
   scanf("%f", &a);
   printf("\ninput b:");
   scanf("%f", &b);
   printf("\ninput c:");
   scanf("%f", &c);
   srar=(a+b+c)/3;
   ota=fabs(a-srar);
   otb=fabs(b-srar);
   otc=fabs(c-srar);
   printf("\n a otlichaetsa ot sr. arifm na %d", ota);
   printf("\n b otlichaetsa ot sr. arifm na %d", otb);
   printf("\n c otlichaetsa ot sr. arifm na %d", otc);
   printf("\n Minimal'noe otlichie %d", (ota < otb) ? ota : (otb < otc) ? otb : otc);
   cin.get();
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.11.2009, 10:29     на языке с #7
Тоже изменив немного программу Iworb,
с использованием операторов ветвления:
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
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
 
void main()
{
   float a,b,c,ota,otb,otc,srar;
   printf("input a:");
   scanf("%f", &a);
   printf("\ninput b:");
   scanf("%f", &b);
   printf("\ninput c:");
   scanf("%f", &c);
   srar=(a+b+c)/3;
   if(a-srar>0)
       ota=a-srar;
   else
       ota=srar-a;
   if(b-srar>0)
       otb=b-srar;
   else
       otb=srar-b;
   if(c-srar>0)
       otc=c-srar;
   else
       otc=srar-c;   
   printf("\n a otlichaetsa ot sr. arifm na %f", ota);
   printf("\n b otlichaetsa ot sr. arifm na %f", otb);
   printf("\n c otlichaetsa ot sr. arifm na %f", otc);
   cin.get();
}
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
11.11.2009, 10:46     на языке с #8
Цитата Сообщение от снег Посмотреть сообщение
Огромное вам спасибо.Но мы только начали изучать этот язык и для меня это еще сложновато.А возможно эту задачу решить с помощью разветвляющегося алгоритма?
но тут его в принципе ненужно использовать.
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
11.11.2009, 16:32  [ТС]     на языке с #9
Большое спасибо всем,за помощь!!!!!!!!!!!!!!!!!
victor_g
60 / 60 / 2
Регистрация: 09.11.2009
Сообщений: 198
11.11.2009, 16:36     на языке с #10
Цитата Сообщение от снег Посмотреть сообщение
Найти значение минимального отклонения
- наверное, ветвление нужно, чтобы найти минимальное из трех отклонений?

Добавлено через 1 минуту
C
1
2
3
min = ota;
if (otb < min) min = otb;
if (otc < min ) min = otc;
Iworb
анимешник++
 Аватар для Iworb
93 / 60 / 2
Регистрация: 03.11.2009
Сообщений: 411
11.11.2009, 19:15     на языке с #11
Цитата Сообщение от victor_g Посмотреть сообщение
- наверное, ветвление нужно, чтобы найти минимальное из трех отклонений?

Добавлено через 1 минуту
C
1
2
3
min = ota;
if (otb < min) min = otb;
if (otc < min ) min = otc;
не отрицаю, что он это имел ввиду

Добавлено через 2 минуты
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
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
 
void main();
{
   float a,b,c,ota,otb,otc,srar,min;
   printf("input a:");
   scanf("%f", &a);
   printf("\ninput b:");
   scanf("%f", &b);
   printf("\ninput c:");
   scanf("%f", &c);
   srar=(a+b+c)/3;
   ota=fabs(a-srar);
   otb=fabs(b-srar);
   otc=fabs(c-srar);
   printf("\n a otlichaetsa ot sr. arifm na %-6.3f", ota);
   printf("\n b otlichaetsa ot sr. arifm na %-6.3f", otb);
   printf("\n c otlichaetsa ot sr. arifm na %-6.3f", otc);
   min = ota;
   if (otb < min) min = otb;
   if (otc < min) min = otc;
   printf("\nminimal`noe otklonenie: %-6.3f", min);
   cin.get();
}
вот - я немного код еще подправил - там вывод был не такой))
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
11.11.2009, 19:28     на языке с #12
Маленькое замечание: в С нет ни библиотеки <iostream.h>, ни, соответственно, cin.get()...
Андрейка
406 / 210 / 22
Регистрация: 25.03.2009
Сообщений: 708
11.11.2009, 19:32     на языке с #13
видимо код писался в турбо С++ под дос там для ожидания нажатия клавиши getch() ; используется вроде бы)
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
13.11.2009, 14:25  [ТС]     на языке с #14
Вот есть еще задачка с которой не могу справиться.Если кто сможет помогите пожалуйста.

Дана матрица В размером 5х4. Составить программу формирования вектора, элементы которого равны сумме элементов строк матрицы В.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
13.11.2009, 15:49     на языке с #15
Цитата Сообщение от снег Посмотреть сообщение
Дана матрица В размером 5х4. Составить программу формирования вектора, элементы которого равны сумме элементов строк матрицы В.
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
33
34
35
36
37
38
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define ROWS 5
#define COLS 4
#define MAXNUM 100
 
int main(){
    int matr[ROWS][COLS];
    int summ_rows[ROWS];
    int i,j,summ;
    
    srand(time(NULL));
    
    /* заполнение массива случайными числами от 1 до MAXNUM */
    for ( i = 0; i < ROWS; i++ )
        for ( j = 0; j < COLS; j++ )
            matr[i][j] = rand() % MAXNUM + 1;
    
    /* вычисление сумм строк */
    for ( i = 0; i < ROWS; i++ ) {
        summ = 0;
        for ( j = 0; j < COLS; j++ )
            summ += matr[i][j];
        summ_rows[i] = summ;
    }
    
    /* вывод */
    for ( i = 0; i < ROWS; i++ ){
        putchar('\n'); /* для наглядности */
        for ( j = 0; j < COLS; j++ )
            printf ( ( j < COLS - 1 ) ? "%d + " : "%d = ", matr[i][j]);
        printf("%d\n", summ_rows[i]);
    }
    
    return 0;
}
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
13.11.2009, 16:37  [ТС]     на языке с #16
Огромное вам СПАСИБО!!!!!!!!!!!!!!
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
22.11.2009, 16:00  [ТС]     на языке с #17
Помогите пожалуйста решить еще вот такую задачу.
Выяснить, верно ли, что среди символов строки произвольной длины имеются все символы, входящие в слово ДЕНЬ.
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
22.11.2009, 16:03     на языке с #18
Объявляешь чаровский массив, можно даже cinом предложить ввести строку пользователю, проверять на отдельно буквы "Д", "Е", "Н" и "Ь". Ну а дальше банальный ifelse

Добавлено через 13 секунд
Да даже без массива можно, скорее всего
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.11.2009, 17:25     на языке с #19
Цитата Сообщение от снег Посмотреть сообщение
Выяснить, верно ли, что среди символов строки произвольной длины имеются все символы, входящие в слово ДЕНЬ.
Хотелось бы замороченнее, да некуда, но работает
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/* определить, все ли символы из строки wrd есть в строке str */
 
int main(){
    char *str = "Simple string to test this program";
    char *wrd = "mine";
    char *flags, *found, *pStr, *pWrd;
    size_t wrd_len;
    
    /* сделал так, чтобы не привязываться к wrd фиксированной длинны,
        и строка, и слово могут быть любыми. Например, вводиться пользователем. 
        В этом случае можно добавить для проверки ввода:
        if ( !str || !(*str) || !wrd || !(*wrd) ){
            fprintf(stderr, "Input data error\n");
            exit(1);
        }
        или вроде того...
    */
    wrd_len = strlen(wrd);
    if ( (flags = (char*)malloc(wrd_len)) == NULL ){
        fprintf(stderr, "Not enough memory!\n");
        exit(1);
    }
    memset((void*)flags, 0, wrd_len);
    
    if ( (found = (char*)malloc(wrd_len)) == NULL ){
        fprintf(stderr, "Not enough memory!\n");
        exit(1);
    }
    memset((void*)found, 1, wrd_len);   
    
    for ( pStr = str; *pStr; pStr++ )
        for ( pWrd = wrd; *pWrd; pWrd++ )
            if ( *pStr == *pWrd )
                flags[pWrd - wrd] = 1;
    
    /* вывод */
    if ( !memcmp((void*)flags, (void*)found, wrd_len) )
        printf("All symbols of \"%s\" found in \"%s\"\n", wrd, str);
    else
        printf("String \"%s\" won't contain some symbols of \"%s\"\n", str, wrd);
    
    free(flags);
    flags = NULL;
    free(found);
    found = NULL;
 
    exit(0);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2009, 18:52     на языке с
Еще ссылки по теме:

Вычислить e^x на языке Си C++
GeoTiff - примеры ее использования на языке c , желательно на русском языке C++
C++ Запрограммировать на языке С

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

Или воспользуйтесь поиском по форуму:
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
22.11.2009, 18:52  [ТС]     на языке с #20
Большое пребольшое спасибо!!!А можно ли как-нибудь попроще?
Yandex
Объявления
22.11.2009, 18:52     на языке с
Ответ Создать тему
Опции темы

Текущее время: 10:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru