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

запись в массиве - C++

Восстановить пароль Регистрация
 
diana92
4 / 4 / 1
Регистрация: 25.10.2009
Сообщений: 36
03.01.2010, 21:09     запись в массиве #1
Нужно заполнить массив. Вводится n. В зависимости от n массив заполняется так : 1;12;123.....1234567890. N кол-во элементов в массиве. Не прошу вместо меня написать, просто подскажите алгоритм
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2010, 21:09     запись в массиве
Посмотрите здесь:

Нет вывода и неправильная запись (запись) C++
C++ люди добрые! нужно программа инверсная запись чисел, запись из инверсной в обычную
[Файлы] Запись-чтение-запись. Почему не прокатывает? C++
C++ Из массива А удалить те элементы, встречающиеся и в массиве А и в массиве В хотя бы два раза
Вывести элементы, которые есть в массиве А в нескольких экземплярах и отсутствуют в массиве В C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir_Limaki
1 / 1 / 0
Регистрация: 02.01.2010
Сообщений: 39
03.01.2010, 22:19     запись в массиве #2
Цитата Сообщение от diana92 Посмотреть сообщение
Нужно заполнить массив. Вводится n. В зависимости от n массив заполняется так : 1;12;123.....1234567890. N кол-во элементов в массиве. Не прошу вместо меня написать, просто подскажите алгоритм
на мой взгляд все просто а масив одномерный или двухмерный
если одномерный массив то то двойной цикл i 0.......n
j 0.............i
умножай на 10 и пробавляй следуюшее !!
только такое уточнеенние оно должно 1234567890 или 12345678910???
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
03.01.2010, 22:35     запись в массиве #3
до 10 элементов работает нормально
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
#include <iostream>
using namespace std;
 
int main(){
    int *arr, i, cur, n;
    
    cout << "Number of elements: ";
    cin >> n;
    if ( n < 1 ){
        cerr << "Bad value!" << endl;
        return 1;
    }
    arr = new int [ n ];
    cur = 0;
    for ( i = 0; i < n; ++i ){
        cur = cur * 10 + i + 1;
        arr[i] = cur;
    }
    /* вывод */
    for ( i = 0; i < n; ++i )
        cout << "ARRAY[" << i << "] = " << arr[i] << endl;
    
    delete [] arr;
    return 0;
}
Vladimir_Limaki
1 / 1 / 0
Регистрация: 02.01.2010
Сообщений: 39
03.01.2010, 22:42     запись в массиве #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
#include<iostream>
#include<windows.h>
 
using namespace std;
void main()
{int A[10];
    for(int j=0 ; j<10;j ++)
        {
A[j]=0;
        }
 
 
    for(int i=0;i<10;i++)
        for(int j=1 ; j<=i+1;j ++)
        {
 
A[i]=A[i]*10+j;
 
        }
        
 
        for(int j=0 ; j<10;j ++)
        {
cout<<A[j]<<"  ";
        }
        cout<<endl;
system("pause");
 
}
Добавлено через 5 минут
Цитата Сообщение от easybudda Посмотреть сообщение
до 10 элементов работает нормально
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
#include <iostream>
using namespace std;
 
int main(){
    int *arr, i, cur, n;
    
    cout << "Number of elements: ";
    cin >> n;
    if ( n < 1 ){
        cerr << "Bad value!" << endl;
        return 1;
    }
    arr = new int [ n ];
    cur = 0;
    for ( i = 0; i < n; ++i ){
        cur = cur * 10 + i + 1;
        arr[i] = cur;
    }
    /* вывод */
    for ( i = 0; i < n; ++i )
        cout << "ARRAY[" << i << "] = " << arr[i] << endl;
    
    delete [] arr;
    return 0;
}а если после того как i в цикле стант больше 10 тоесть имеет 2 знакака будем умножать на 100?
а если после того как i в цикле стант больше 10 тоесть имеет 2 знакака будем умножать на 100?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
04.01.2010, 06:17     запись в массиве #5
Цитата Сообщение от Vladimir_Limaki Посмотреть сообщение
а если после того как i в цикле стант больше 10 тоесть имеет 2 знакака будем умножать на 100?
Написал же - до 10 знаков.
Вот так можно вывести довольно длинную последовательность, циклически повторяющую цифры от 1 до 0:
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>
#include <stdlib.h>
 
int main(void){
    char *buf;
    size_t i, j, n;
    
    printf("Number of elements: ");
    if ( scanf("%d", &n) != 1 )
        exit(1);
    if ( n < 1 )
        exit(1);
    if ( ( buf = (char*)malloc(n + 1) ) == NULL )
        exit(1);
    for ( i = 0; i < n; ++i ){
        for ( j = 0; j <= i; ++j )
            buf[j] = (j + 1) % 10 + '0';
        buf[j] = '\0';
        printf("%s\n", buf);
    }
    free(buf);
    exit(0);
}
Yandex
Объявления
04.01.2010, 06:17     запись в массиве
Ответ Создать тему
Опции темы

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