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

Получить последовательность по правилу

08.12.2009, 17:21. Просмотров 801. Ответов 15
Метки нет (Все метки)

Ребят, вот такая задача:
даны действ. числа а1,а2,...,аn(n>10). получить последовательность b1,b2...,b10, где b1=a1+a2+...+an,
b2=a2+a3+...+an, b10=a10+a11+...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
  #include <stdio.h>
#define SIZE 10
int main(void)
{
int usr=0,i=0,j=0;
float a[SIZE],b[SIZE];
  do
  {
    printf("Vvedite razmer (ne menee 11):\n");
    scanf("%d",&usr);
  }
  while(usr<11);
  printf("Elements:\n");
  for (i=0;i<usr;++i)
  {
  printf("a[i]:");
  scanf("%d",&a[i]);
  }
    for (i=0; i<10; ++i)
    {
       b[i]=0;
       for (j=i; j<usr; ++j)
            b[i]+=a[j];
    }
       printf("Massiv:\n");
        for (i=0; i<10; ++i)
        {
        printf("%d:",b[i]);
        return 0;
        }
}
где ошибка не могу понять?
подскажите пожалуйста
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2009, 17:21
Ответы с готовыми решениями:

Получить последовательность по правилу
Даны действительные числа A,A,A,...,A. Получить A+A,A+A,...,A + A. Мои наработки: #include...

Получить последовательность по правилу
Даны натуральное число n, действительные числа x(1),.....x(n). Получить (1+r)/(1+s), где r - сумма...

Получить последовательность по правилу
Не могу понять задание. Кто сможет, помогите. Если не кодом, хоть объясните само задание. ...

Получить последовательность по правилу
Цель лабораторной работы: получить навыки использования указателей при работе с одномерными и...

Получить последовательность по правилу
Помогите решить пожалуйста!!! Не знаю даже с чего подойти... :help:

15
Runa
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
08.12.2009, 18:24 2
у тебя прога зацикливается? Что не так?
0
Planet
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 52
08.12.2009, 18:26  [ТС] 3
нет, выводит нули....или закорючки
0
manfeese
131 / 130 / 29
Регистрация: 04.01.2009
Сообщений: 415
08.12.2009, 18:38 4
Что должна делать 12 строка??? Походу она лишняя!!!
0
TanT
эволюционирую потихоньку
467 / 465 / 91
Регистрация: 30.06.2009
Сообщений: 1,399
08.12.2009, 18:39 5
ты говоришь ввести количество элементов больше, чем статически выделенно памяти под них.
и в строке 29 ретурн у тебя зачем? цикл тот смысла не имеет, так как по ретурн сразу выходит

Добавлено через 48 секунд
Цитата Сообщение от manfeese Посмотреть сообщение
Что должна делать 12 строка??? Походу она лишняя!!!
там же do...while - это у него проверка на ввод нужных чисел
хотя логически не верно
0
Planet
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 52
08.12.2009, 18:41  [ТС] 6
Скажите,что исправить что б верно было?
сама задача вот :
даны действ. числа а1,а2,...,аn(n>10). получить последовательность b1,b2...,b10, где b1=a1+a2+...+an,
b2=a2+a3+...+an, b10=a10+a11+...an;
0
Runa
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
08.12.2009, 18:44 7
Программа все провильно считает, только что проверила
Значит проблема где-то в в выводе
убери return
0
Planet
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 52
08.12.2009, 18:46  [ТС] 8
Марина,помоги найти ошибку, пожалуйста
0
Runa
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
08.12.2009, 18:47 9
сотри 29ю строчку и скажи что получилось
0
Darky
Быдлокодер
508 / 295 / 84
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
08.12.2009, 18:49 10
Maruna, Не в этом ошибка. Возвращение значения, тем более для void ничего не даст.
0
Runa
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
08.12.2009, 18:57 11
код для c++ builder все правильно выводит
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
int usr=0,i=0,j=0;
int a[10],b[10];
  do
  {
    usr=StrToInt(Edit1->Text);
  }
  while(usr<11);
 
  for (i=0;i<usr;++i)
  {
   a[i]=StrToInt(Memo1->Lines->Strings[i]);
  }
    for (i=0; i<10; ++i)
    {
       b[i]=0;
       for (j=i; j<usr; ++j)
            b[i]+=a[j];
    }
 
        for (i=0; i<10; ++i)
        {
        Edit2->Text=Edit2->Text+IntToStr(b[i])+" ";
 
             }
}
В edit1 вводим число элементов
в Memo1 сами числа
в edit2 выводим результат
естественно элементов ровно 11
0
Planet
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 52
08.12.2009, 18:59  [ТС] 12
он выводит все норм НО
пишет потом ошибку
stack around the variable "a" was corrupted
и результат в таком виде :
b[0]=78.000000b[1]=77.000000b[2]=75.000000b[3]=72.000000b[4]=68.000000b[5]=63.00
0000b[6]=57.000000b[7]=50.000000b[8]=42.000000b[9]=33.000000b[10]=23.000000b[11]
=12.000000Для продолжения нажмите любую клавишу . . .

Добавлено через 27 секунд
да, надо его в с перевести..
0
manfeese
131 / 130 / 29
Регистрация: 04.01.2009
Сообщений: 415
08.12.2009, 19:00 13
просто выдели память под массивы динамически и дело с концом
0
Planet
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 52
08.12.2009, 19:01  [ТС] 14
как?
0
Runa
133 / 85 / 22
Регистрация: 28.08.2009
Сообщений: 363
08.12.2009, 19:06 15
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

если есть проблема с динамикой укажи хотя бы 100, а не 10

Добавлено через 2 минуты
float a[100],b[100];
будет самым простым решением для тебя

Добавлено через 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
#include <stdio.h>
int main(void)
{
int usr=0,i=0,j=0;
float a[100],b[100];
  do
  {
    printf("Vvedite razmer (ne menee 11):\n");
    scanf("%d",&usr);
  }
  while(usr<11);
  printf("Elements:\n");
  for (i=0;i<usr;++i)
  {
  printf("a[i]:");
  scanf("%d",&a[i]);
  }
    for (i=0; i<10; ++i)
    {
       b[i]=0;
       for (j=i; j<usr; ++j)
            b[i]+=a[j];
    }
       printf("Massiv:\n");
        for (i=0; i<10; ++i)
        {
        printf("%d:",b[i]);
        return 0;
                }
}
пробуй
0
Planet
0 / 0 / 0
Регистрация: 07.11.2009
Сообщений: 52
08.12.2009, 19:21  [ТС] 16
всем спасибо
0
08.12.2009, 19:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2009, 19:21

Если последовательность упорядочена по неубыванию, то оставить ее без изменения, иначе получить последовательность an, an-1, ... , a1
Здравствуйте! Помогите пожалуйста переделать программу под язык Си с Паскаля! Дана...

Преобразовать последовательность по заданному правилу
Прощу вашей помощи при преобразовании из c++ на си Даны действительные числа a1, ..., a20....

Получить матрицу по правилу
Здраствуйте люди добрые! Написал прогу , но чувствую что что-то не то: Получить...


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

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

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