Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Little user
0 / 0 / 2
Регистрация: 23.05.2018
Сообщений: 10
1

Простые вычисления

07.06.2018, 08:01. Просмотров 801. Ответов 1
Метки нет (Все метки)

Доброго времени суток всем! Появилась проблема с некоторыми пунктами, никак не могу понять, что необходимо сделать. Задача:
Даны натуральное число n и числа a1, a2, ..., an. Определить:...
Собственно говоря первый и второй пункт вышли у меня, а вот третий и четвертый никак:
3)a1+a2, a2+a3, ..., http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n-1}+{a}_{n} ;
4)a1-a2+a3-...+http://www.cyberforum.ru/cgi-bin/latex.cgi?{(-1)}^{n+1}an;

Мой код:
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
95
#include <stdio.h>
#include <stdlib.h>
 
 
int sum (FILE* f, int n, int p, int sum, int i)
{
    while (i <= n)
    {
        fscanf(f, "%d", &p);
        p = abs(p);
        sum = sum + p;
        i++;
    }
    printf("1) Сумма равна %d \n", sum);
    return(0);
}
 
int mult (FILE* f, int n, int p, double mult, int i)
{
    while (i <= n)
    {
        fscanf(f, "%d", &p);
        p = abs(p);
        mult = mult * p;
        i++;
    }
    printf("2) Произведение равно %.0lf \n", mult);
    return(0);
}
 
int sum1 (FILE* f, int n, int p, int p1, int sum1, int i)
{
    int pi = 2;
    printf("3) Получившиеся числа: \n");
    while (i <= n)
    {
        fscanf(f, "%d", &p);
        sum1 = p + pi;
        printf(" %d;", sum1);
        pi++;
        i++;
    }
    printf("\n");
    return(0);
}
 
int sum2 (FILE* d, int n, int p, int p1, int sum1, int sum2, int i)
{
    while (i <= n)
    {
        fscanf(d, "%d", &p);
        fscanf(d, "%d", &p1);
        sum1 = p - p1;
        sum2 = sum2 + sum1;
        i = i + 3;
    }
    printf("\n");
    printf("4) Ответ: %d \n", sum2);
    return(0);
}
 
int main()
{
    setlocale(0,"");
    int n;
    printf("Введите количество переменных: \n");
    scanf("%d", &n);
    FILE *f = fopen("FILE.txt", "r");
    printf("Выберите пункт, который вас интересует : \n");
    printf("1) |a1| + |a2| + ... + |an|; \n");
    printf("2) |a1| * |a2| * ... * |an|; \n");
    printf("3) a1 + a2, a2 + a3, ... , an-1 + an ; \n");
    printf("4) a1 - a2 + a3 - ... + -1^(n+1) * an; \n");
    printf("\n");
    int inp;
    scanf( "%d", &inp );
    switch ( inp )
    {
    case 1:
        sum(f,n,0,0,1);
        break;
    case 2:
        mult(f,n,0,1,1);
        break;
    case 3:
        sum1(f,n,0,0,0,1);
        break;
    case 4:
        sum2(f,n,0,0,0,0,1);
        break;
    default:
        printf( "Проверьте правильность введенных вами данных!\n" );
    }
    return 0;
}
В файле заложены числа от 1 до 20 по порядку.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2018, 08:01
Ответы с готовыми решениями:

Калькулятор - простые вычисления до тех пор, пока пользователь не нажмет "="
Задание: вводим число, действие и число. И так до тех пор, пока не введём знак...

Функцией определить простые числа, вывести все простые числа до N
Условие: С помощью сложной функции определения опредилить, является ли число...

Разложение на простые множители
Разложение на простые множители

Разложение на простые множители
Требуется вывести представление целого числа N в виде произведения простых...

Простые числа близнецы
Вводиться n-матриц, каждый элемент одной матрицы сравниваем с элементом другой...

1
Ovederax
198 / 137 / 95
Регистрация: 30.04.2017
Сообщений: 292
07.06.2018, 17:58 2
Лучший ответ Сообщение было отмечено Little user как решение

Решение

Здесь нет проверок на то, есть ли в файле достаточное кол-во чисел или есть ли в файле недопустимые символы.
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
int sum1 (FILE* f, int n)
{
    int p=0;
    int p1=0;
    int sum1=0;
    int i=0;
    n--;
    printf("3) Получившиеся числа:");
    fscanf(f,"%d", &p);
    while (i < n)
    {
        fscanf(f,"%d", &p1);
        sum1 = p + p1;
        p=p1;
        printf(" %d;", sum1);
        i++;
    }
    printf("\n");
    return(0);
}
 
int sum2 (FILE* d, int n)
{
    int p=0;
    int sum=0;
    int i=0;
    int sign=1;
    while (i < n)
    {
        fscanf(d, "%d", &p);
        sum = sum + p * sign;
        sign = sign * -1;
        ++i;
    }
    printf("\n");
    printf("4) Ответ: %d \n", sum);
    return(0);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2018, 17:58

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

Отсортировать простые числа
Спасйте над дорешыть задачку над отсортировать простые числа плиз вот полное...

Найти все простые числа от 2 до n
Найти все простые числа от 2 до n включая 2 и n, если они простые числа.


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

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

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