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

Массивы: ручной ввод - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 5.00
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 14:13     Массивы: ручной ввод #1
Всех с НОВЫМ ГОДОМ!!!!!!!!!!!!!!
но НГ,а мне надо завтра сдавать работу.... очень-очень надо....
Помогите сделать ручной ввод массива!!!!!!1 пожалуйста!!!!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
 int m[30];
 int main(void)
 {
 int i,count=0;
 printf("Ishodnaya posledovatelnost:\n\n");
 for(i=0;i<30;i++) 
 { 
 m[i]=rand()%100-50;
 printf("%3d ",m[i]);
 if((i+1)%10==0) printf("\n");} 
 printf("\n");
 for(i=1;i<30;i++) if(m[i-1]==-1*m[i]) count++;
 if(count==0) printf("Net takih ");
 else printf("Naideno %d para(i) ", count);
 printf("sosednih elementov, kotorie imeut odinakovie absolutnie\
 \nznacheniya,no protivopoloznie po znaky.");
 system("pause");
}
 Комментарий модератора 
Используйте теги форматирования кода!


Добавлено через 46 секунд
размерность массива 30.
диапазон значений от -50 до 50.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 14:16     Массивы: ручной ввод #2
Цитата Сообщение от Ренатка Посмотреть сообщение
m[i]=rand()%100-50;
printf("%3d ",m[i]);
->
C
1
scanf("%d", &m[i]);
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 14:22  [ТС]     Массивы: ручной ввод #3
но тогда не выполняется условие....
найти количество пар соседних элементов имеющих одинаковое абсолютное значение,но противоположные знаки..
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 14:31     Массивы: ручной ввод #4
Замена rand на scanf не может изменить всю программу. Значит она изначально неверно работала.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main(void)
{
    int size = 10;
    int arr[size];
    int count = 0, i;
    scanf("%d", arr);
    for(i = 1; i < size; ++i)
    {
        scanf("%d", &arr[i]);
        if(arr[i - 1] == -arr[i])
            ++count;
    }
    printf("%d\n", count);
    return 0;
}
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 14:37  [ТС]     Массивы: ручной ввод #5
сначала все работало,но конечно без ручного ввода,что я попромила сделать...
а программа,которую вы скинули,вообще просто чтобы ввести массив и все..
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 14:43     Массивы: ручной ввод #6
Чтобы было не "только ввести массив и все" подключите stdlib.h и в конце напишите system("pause");

Еще раз повторяю, замена rand() -> scanf меняет только способ заполнения массива. На работу программы она никоим образом не влияет. Это первое.
Второе, одномерный массив или двумерный?
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 14:54  [ТС]     Массивы: ручной ввод #7
не знаю даже..
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 14:59     Массивы: ручной ввод #8
Цитата Сообщение от Ренатка Посмотреть сообщение
не знаю даже..
Задание полностью приведите.
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 15:03  [ТС]     Массивы: ручной ввод #9
Размерность
массива 30

Диапазон
значений -50 до 50

Что нужно сделать
Найти количество пар соседних элементов, которые имеют одинаковые абсолютные значения, но противоположные знаки

Добавлено через 25 секунд
нуи чтоб был ручной ввод
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 15:07     Массивы: ручной ввод #10
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    int size = 30;
    int arr[size];
    int count = 0, i;
    scanf("%d", arr);
    for(i = 1; i < size; ++i)
    {
        scanf("%d", &arr[i]);
        if(arr[i - 1] == -arr[i])
            ++count;
    }
    printf("%d\n", count);
    system("pause");
    return 0;
}
Сравните с кодом из поста #4 и найдите 2 отличия. И прочтите начало поста #6 в котором я описал эти отличия. Ввод данных руками.
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 15:14  [ТС]     Массивы: ручной ввод #11
stdlib.h и в конце system("pause");
все вижу)))
но с этим кодом не выполняется условие!!!
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 15:16     Массивы: ручной ввод #12
Цитата Сообщение от Ренатка Посмотреть сообщение
но с этим кодом не выполняется условие!!!
Она не выводит количество пар?
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 15:20  [ТС]     Массивы: ручной ввод #13
количество пар выводит,но непонятно каких
непонятно как она их выбирает
если например ввожу 1,5,-5,20,7,3,-27,45,34,-2 выводит 0
хотя тут есть 1 пара 5 и -5..
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.01.2012, 15:24     Массивы: ручной ввод #14
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
soon@bt:~/src/C$ cat main.c
#include <stdio.h>
 
int main(void)
{
    int size = 10;
    int arr[size];
    int count = 0, i;
    scanf("%d", arr);
    for(i = 1; i < size; ++i)
    {
        scanf("%d", &arr[i]);
        if(arr[i - 1] == -arr[i])
            ++count;
    }
    printf("%d\n", count);
    return 0;
}
soon@bt:~/src/C$ gcc -Wall main.c -o main
soon@bt:~/src/C$ ./main
1 5 -5 20 7 3 -27 45 34 -2    
1
soon@bt:~/src/C$
И где это вы там 0 усмотрели?
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 15:25  [ТС]     Массивы: ручной ввод #15
ой,все поянла,надо ж без запятой..спасибо!!
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
02.01.2012, 15:42     Массивы: ручной ввод #16
Цитата Сообщение от Ренатка Посмотреть сообщение
ой,все поянла,надо ж без запятой..спасибо!!
Неплохо бы было сделать проверку значения, которое возвращает scanf, чтобы таких казусов не было
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 15:45  [ТС]     Массивы: ручной ввод #17
а как это можно сделать??
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
02.01.2012, 15:51     Массивы: ручной ввод #18
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 <stdio.h>
 
int ff ()
{
    while ( getc (stdin) != '\n' ) ;
    return 1;
}
 
int main(void)
{
    int size = 10;
    int arr[size];
    int count = 0, i;
    scanf("%d", arr);
    for(i = 1; i < size; ++i)
    {
        while ( ff () && printf ("enter arr[%d]", i + 1) && !scanf("%d", &arr[i]) );
        if(arr[i - 1] == -arr[i])
            ++count;
    }
    printf("%d\n", count);
    return 0;
}
Можно так, ввод через enter
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2012, 16:17     Массивы: ручной ввод
Еще ссылки по теме:

C++ Ручной ввод количества знаков после запятой
C++ Организовать ручной ввод 80-значных чисел вместо случайного ввода
C++ Нахождение детерминанта матрицы и её ручной ввод

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

Или воспользуйтесь поиском по форуму:
Ренатка
1 / 1 / 0
Регистрация: 29.12.2011
Сообщений: 66
02.01.2012, 16:17  [ТС]     Массивы: ручной ввод #19
спасибо большое!!!
а не могли бы вы еще эту темку посмотреть??...

Добавлено через 4 минуты
Таблица,подсчет суммы ряда Sn и значения F(x)
Yandex
Объявления
02.01.2012, 16:17     Массивы: ручной ввод
Ответ Создать тему
Опции темы

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