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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
#1

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

10.11.2009, 18:49. Просмотров 1997. Ответов 37
Метки нет (Все метки)

кто сможет помогите пожалуйста!Даны 3 числа а,в,с.Найти значение минимального отклонения каждого из них от среднего арифметического.Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2009, 18:49     на языке с
Посмотрите здесь:

Программирование на языке C++ - C++
Известны данные о мощности двигателей(в л.с.) и стоимость 30 легковых автомобилей. Определить общую стоимость автомобилей, у которых...

БНФ в языке C++ - C++
мне для начала хотелось бы узнать что это, а лучше источники, где можно почитать подробно(книги, сайты) помогите плиз)

Скобки в языке C++ - C++
В каком случае используются фигурные скобки {...}, а в каком случае должны быть использованы фигурные скобки? Добавлено через 12 минут...

Задание на языке С++ - C++
Здравствуйте уважаемые обитатели форума! Очень нуждаюсь в вашей помощи! Необходимо написать следующие задачи на языке C++. Задача...

Функции на языке С - C++
Файл содержит целые числа. Заменить все числа, представляющие число три в целочисленной степени сочетанием 3^n (где n – степень)....

Функции на языке С - C++
Файл содержит целые числа. Вычислить сумму значений из файла, в двоичном представлении которых K разрядов установлено в единицу. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
23.11.2009, 16:51  [ТС]     на языке с #21
Вот по этому заданию(Дана матрица В размером 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
#include "stdio.h"
#include "string.h"
#include "conio.h"
void main(void)
{
    const N=5;
    const M=4;
    int B[N][M];
    int i,j;
    int Sum;
    int A[N];
    printf("Vvedite elementi matrici B%dx%d:\n",N,M);
    for(i=0;i<N;i++)
        for(j=0;j<M;j++)
        {
            printf("B[%d][%d]=",i,j);
            scanf("%d",&B[i][j]);
        }
 
    printf("Vi vveli matricu:\n");
    for(i=0;i<N;i++)
    {
    Sum=0;
        for(j=0;j<M;j++)
          Sum=Sum+B[i][j];
          A[i]=Sum;
    }
    printf("Ї®«гзҐ**л© ўҐЄв®а A\n");
    For(i=0;i<N;i++)
       scanf("%d",&A[i]);
    printf("Press any key\n");
    getch();
}
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
23.11.2009, 17:20     на языке с #22
Цитата Сообщение от снег Посмотреть сообщение
#include "stdio.h" #include "string.h" #include "conio.h"
C
1
2
3
#include <stdio.h>
#include <string.h>
#include <conio.h>
Цитата Сообщение от снег Посмотреть сообщение
for(i=0;i<N;i++) {
Sum=0;
for(j=0;j<M;j++)
Sum=Sum+B[i][j];
A[i]=Sum;
}
скобку пропустил
C
1
2
3
4
5
6
7
for(i=0;i<N;i++) { 
    Sum=0; 
    for(j=0;j<M;j++) {
        Sum=Sum+B[i][j]; 
        A[i]=Sum;
    } 
}

Цитата Сообщение от снег Посмотреть сообщение
printf("Ї®«гзҐ**л© ўҐЄв®а A\n"); For(i=0;i<N;i++) scanf("%d",&A[i]);
Не знаю, что там в строке написано, но дальше зачем-то элементы массива А (то есть те, которые при суммировании строк из В получались) зачем-то меняются на вводимые с клавиатуры...
Я так думаю - их вывести надо было...
C
1
2
for (i = 0; i < N; i++ )
    printf("%d\n", A[i]);
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
23.11.2009, 21:39  [ТС]     на языке с #23
Спасибо за помощь!!!!!!!!Набираю программу,в итоге выходит длинный ряд из нулей.И при этом она зацикливается.Что делать?
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
24.11.2009, 00:15     на языке с #24
снег, вот
так
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
#include <stdio.h>
 
#define ROWS 5
#define COLS 4
    
/*  
    Дана матрица В размером 5х4. Составить программу формирования вектора, 
    элементы которого равны сумме элементов строк матрицы В
*/
    
int main(void){
    int B[ROWS][COLS];
    int V[ROWS] = {0};
    size_t i, j;
    
    for ( i = 0; i < ROWS; i++ ){
        for ( j = 0; j < COLS; j++ ){
            printf("B[%d][%d] = ", i, j);
            scanf("%d", &B[i][j]);
        }
    }
    
    for ( i = 0; i < ROWS; i++ )
        for ( j = 0; j < COLS; j++ )
            V[i] += B[i][j];
    
    printf("\n-----------------------------\n");
    
    for ( i = 0; i < ROWS; i++ ){
        for ( j = 0; j < COLS; j++ )
            printf( ( j < COLS - 1 ) ? "%d + " : "%d = ", B[i][j]);
        printf("%d\n", V[i]);
    }
    
    return 0;
}
работает...
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
24.11.2009, 09:42  [ТС]     на языке с #25
Даже не знаю как вас благодарить!Огромное спасибо!!!!
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
24.11.2009, 16:12  [ТС]     на языке с #26
easybudda!Я наверное уже вас замучила.Но появился еще вопрос.Программа которую вы мне сделали идет, я ввожу матрицу 1 1 0 1 2
0 0 2 1 0
1 0 0 0 1
1 1 1 1 2
Программа выдает ответ:1+1+0+1=3
2+0+0+2=4
1+0+1+0=2
1+1+1+2=5.Почему так?
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.11.2009, 16:28     на языке с #27
Ладно, пока easybudda нет я отвечу, надеюсь он не обидится.
Размер матрицы у Вас 5*4 (5 строк, 4 столбца), а это значит, что
Цитата Сообщение от снег Посмотреть сообщение
я ввожу матрицу 1 1 0 1 2
0 0 2 1 0
1 0 0 0 1
1 1 1 1 2
Вы на самом деле вводите:
1101
2002
1010
0011
1112
и результат получаете соответствующий.
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
24.11.2009, 16:51     на языке с #28
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Ладно, пока easybudda нет я отвечу, надеюсь он не обидится.
Размер матрицы у Вас 5*4 (5 строк, 4 столбца)
А чего обижаться-то? Всё правильно.

снег, так уж повелось, что сначала количество строк указывают, а потом количество столбцов
C
1
2
#define ROWS 5
#define COLS 4
Row - ряд по-английски, Column (COLS сокращение от COLUMNS) - колонка... Хотите, чтобы было, как Вы вводите, поменяйте
C
1
2
#define ROWS 4
#define COLS 5
Но тогда как-бы не по заданию получится...
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
24.11.2009, 17:49  [ТС]     на языке с #29
Теперь я поняла!!!В который раз говорю СПАСИБО!!!
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
29.11.2009, 18:37  [ТС]     на языке с #30
А не могли бы вы решить еще вот эти 2 задачки?
1.Составить функции определения минимального и максимального элементов в одномерном массиве. Используя их, найти минимум среди максимальных элементов строк матрицы.
2. Описать массив записей, содержащий информацию об итогах сдачи вами экзаменационных сессий в институте. Определить средний балл.
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
29.11.2009, 21:47     на языке с #31
Цитата Сообщение от снег Посмотреть сообщение
1.Составить функции определения минимального и максимального элементов в одномерном массиве. Используя их, найти минимум среди максимальных элементов строк матрицы.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define MAX_VAL 100
#define ROWS 5
#define COLS 10
 
/*
    Составить функции определения минимального и максимального элементов в одномерном массиве.
*/
 
/* возвращает указатель на самый большой элемент в массиве, если их несколько - на первый из них */
const int *maxElement(const int *arr, size_t count){
    const int *pArr, *pMax;
    int max_val;
    
    if ( !arr || !count )
        return NULL;
    
    pMax = arr;
    max_val = *pMax;
    for ( pArr = arr + 1; pArr < arr + count; pArr++ ){
        if ( *pArr > max_val ){
            pMax = pArr;
            max_val = *pMax;
        }
    }
    return pMax;
}
 
/* возвращает указатель на самый маленький элемент в массиве, если их несколько - на первый из них */
const int *minElement(const int *arr, size_t count){
    const int *pArr, *pMin;
    int min_val;
    
    if ( !arr || !count )
        return NULL;
        
    pMin = arr;
    min_val = *pMin;
    for ( pArr = arr + 1; pArr < arr + count; pArr++ ){
        if ( *pArr < min_val ){
            pMin = pArr;
            min_val = *pMin;
        }
    }
    return pMin;
}
 
/*
    Используя их, найти минимум среди максимальных элементов строк матрицы.
*/
 
int main(void){
    int matr[ROWS][COLS];
    int max_vals[ROWS] = { 0 };
    const int *pVal = NULL;
    size_t i, j;
    
    srand(time(NULL));
    /* заполнить матрицу */
    for ( i = 0; i < ROWS; i++ )
        for ( j = 0; j < COLS; j++ )
            matr[i][j] = rand() % MAX_VAL;
    
    /* получить максимальные значения для каждой строки, занести в массив max_vals */
    for ( i = 0; i < ROWS; i++ ){
        if ( (pVal = maxElement(matr[i], COLS)) == NULL ){
            fprintf(stderr, "Shit happens!\n");
            exit(1);
        }
        max_vals[i] = *pVal;
    }
    
    /* вывод матрицы */
    printf("\nOriginal matrix:\n");
    for ( i = 0; i < ROWS; i++ )
        for ( j = 0; j < COLS; j++ )
            printf( ( j < COLS - 1 ) ? "%02d " : "%02d\n", matr[i][j]);
            
    /* максимальные значения для каждого ряда */
    printf("\nMax values for each row:\n");
    for ( i = 0; i < ROWS; i++ )
        printf("%02d ", max_vals[i]);
    printf("\nMinimum from them: ");
    if ( (pVal = minElement(max_vals, ROWS)) == NULL ){
        fprintf(stderr, "Shit happens!\n");
        exit(1);
    }
    printf("%d\n", *pVal);
    
    exit(0);
}
Добавлено через 1 час 12 минут
Цитата Сообщение от снег Посмотреть сообщение
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
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define NAME_LEN 40
 
/*
    Описать массив записей, содержащий информацию об итогах сдачи вами экзаменационных сессий в институте. 
    Определить средний балл
*/
 
typedef struct {
    char name[NAME_LEN];
    int score;
} Subject_t;
 
/* заполняет структуру */
void fillSubject(Subject_t *s){
    printf("Subject name: ");
    if ( fgets(s->name, NAME_LEN, stdin) == NULL ){
        fprintf(stderr, "Error while getting subject name!\n");
        exit(1);
    }
    s->name[strlen(s->name) - 1] = '\0';
    printf("Subject score: ");
    if ( !scanf("%d", &s->score) ){
        fprintf(stderr, "Error while getting subject score!\n");
        exit(1);
    }
    getchar(); /* удалить \n из потока ввода */
}
 
int main(void){
    Subject_t *session = NULL;
    size_t count = 0, i;
    int all_scores = 0;
    double  average_score = 0.0;
    
    printf("Number of subjects: ");
    scanf("%d", &count);
    getchar();
    
    if ( !count ){
        fprintf(stderr, "Bad value for number of subjects!\n");
        exit(1);
    }
    
    if ( (session = (Subject_t*)calloc(count, sizeof(Subject_t))) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(1);
    }
    
    for ( i = 0; i < count; i++ )
        fillSubject(session + i);
        
    /* вычисление среднего балла */
    for ( i = 0; i < count; i++ )
        all_scores += (session[i]).score;
    average_score = (double)all_scores / (double)count;
    
    /* вывод */
    printf("\nAll subjects:\n");
    printf("%-40s%-s\n", "Name", "Score");
    for ( i = 0; i < count; i++ )
        printf("%-40s%-d\n", (session[i]).name, (session[i]).score);
    printf("\nAverage score: %.1f\n", average_score);
    
    free(session);
    session = NULL;
    
    exit(0);
}
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
30.11.2009, 09:19  [ТС]     на языке с #32
Огромное СПАСИБО!
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
07.12.2009, 16:26  [ТС]     на языке с #33
По этому заданию(Вычислить значение конечной суммы 1/(2+1)+1/(2*(4+1))+...+1/(n(2*n+1)) составлена программа,но по-моему она считает не правильно,помогите найти ошибку



C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdio.h"
main()
{
  const int n=3;
  const float x=1;
  float s;
  int i;
  s=0;//nachalnoe znach dlya nekot summy ravnoy 0
  for(i=1; i<=n;i++)
   {
   s=s+(1.0/(n*(2*n+1)));
   }
   printf ("Znaschenie konechnoy summy ravno: %2f\n\n",s);
   }
Darky
Быдлокодер
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
07.12.2009, 16:29     на языке с #34
C
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdio.h"
main()
{
const int n=3;
const float x=1;
float s;
int i;
s=0;//nachalnoe znach dlya nekot summy ravnoy 0
  for(i=1; i<=n;i++)
      s+=(1.0/(i*(2*i+1)));
printf ("Znaschenie konechnoy summy ravno: %2f\n\n",s);
}
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
07.12.2009, 16:58  [ТС]     на языке с #35
Спасибо
снег
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 31
21.12.2009, 15:03  [ТС]     на языке с #36
Пожалуйста помогите решить еще вот такую задачку

Пусть задан некоторый файл, компоненты которого являются целыми числами. Подсчитать количество элементов файла, значение которых равно значению последнего элемента.
easybudda
Эксперт С++
9460 / 5473 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
21.12.2009, 17:42     на языке с #37
Цитата Сообщение от снег Посмотреть сообщение
Пусть задан некоторый файл, компоненты которого являются целыми числами. Подсчитать количество элементов файла, значение которых равно значению последнего элемента.
Если файл текстовый, то вот так например:
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
#include <stdio.h>
#include <stdlib.h>
 
#define F_NAME "test.txt"
 
/* 
    Подсчитать количество элементов файла, 
    значение которых равно значению последнего элемента. 
*/
    
int main(void){
    FILE *f;
    int *arr, num;
    size_t size, count, i;
    
    if ( ( f = fopen(F_NAME, "r") ) == NULL ){
        fprintf(stderr, "%s: Can't open input file!\n");
        exit(1);
    }
    size = 0;
    arr = NULL;
    while ( fscanf(f, "%d", &num) == 1 ){
        if ( ( arr = (int*)realloc(arr, sizeof(int) * (size + 1)) ) == NULL ){
            fprintf(stderr, "Memory error!\n");
            exit(1);
        }
        arr[size++] = num;
    }
    if ( ferror(f) ){
        fprintf(stderr, "Error while reading file!\n");
        exit(1);
    }
    fclose(f);
    if ( !arr || !size ){
        fprintf(stderr, "Empty file or other error!\n");
        exit(1);
    }
    for ( count = 0, i = 0; i < size - 1; ++i )
        if ( arr[i] == arr[size - 1] )
            ++count;
    printf("Found %d elements with value same like last element.\n", count);
    
    free(arr);
    exit(0);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2009, 18:25     на языке с
Еще ссылки по теме:

Вычислить e^x на языке Си - C++
Разработать программу, вычисляющую e^x= 1 + x + x^2/2! + x^3/3! +...+ x^n/n! c точностью эпсилон. Помогите с программой плиз на языке Си

Программа на языке С - C++
Как написать программу на языке С, которая определяет лежит ли точка с координатами(х,у) вне круга, радиуса R, с центром в точке (А,В) или...

Запрограммировать на языке С - C++
1.Пользователь вводит два натуральных числа m; n. Заполнить поле m n звёздочками в шахматном порядке 2.Проверить является ли введённое...

Задачи на языке С++ - C++
Вам предоставляется 5 рабочих кодов программа, написанная на GNU C + +. Вы должны скомпилировать и запустить эти программы с использованием...


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

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

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