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

как вставить строки ..пожалуйстаа^^ - C++

Восстановить пароль Регистрация
 
ensoleille
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 34
16.01.2011, 12:35     как вставить строки ..пожалуйстаа^^ #1
1.Дана матрица размера M х N и целое число K (1 <= K <= M). Перед строкой матрицы с номером K вставить 3 строки из 1.
2.Дан целочисленный массив размера N. Удалить из массива все элементы, встречающиеся менее 2 раз, и вывести размер полученного массива и его содержимое.
хоть убейте,элементарно после ввода-вывода матрицы застреваю на циклах,хоть и понимаю что именно нужно сделать и в какой последовательности =/
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 12:35     как вставить строки ..пожалуйстаа^^
Посмотрите здесь:

Дан безразмерный массив.Вставить количество символов каждой строки вначало этой же строки. C++
Начал писать прогу чтобы текст передвигался по экрану, я что то написал но у меня ошибок куча, подскажите пожалуйстаа :) C++
C++ Строки: как вставить пробел в строку
C++ Вставить в строку 1 содержимое строки 2 (#C) <String.h>
После пятого символа первой строки вставить вторую C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
16.01.2011, 13:47     как вставить строки ..пожалуйстаа^^ #2
Цитата Сообщение от ensoleille Посмотреть сообщение
Перед строкой матрицы с номером K вставить 3 строки из 1.
если это имелось ввиду, что вставить 3 строки из единиц, тогда так :

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 <conio.h>
#include<iostream.h>
int main()
{
 
        int i, j, m, n, k, mat[100][100];
        cout<<" Vvedite m i n :\n";
        cin>>m>>n;
        cout<<" Vvedite matricy :\n";
        for (i=0; i<m; i++) for (j=0; j<n; j++) cin>>mat[i][j];
        cout<<" Vvedite k :\n"; cin>>k;
        cout<<"\n Poluchaem matricy :\n";
        for (i=0; i<m; i++)
        { 
            if (i==k)
            {
                     for (int u=0; u<3; u++) {for (int y=0; y<n; y++) cout<<1<<" "; cout<<"\n";}
            }
            for (j=0; j<n; j++)
               cout<<mat[i][j]<<" ";
            cout<<"\n";
        }
        getch();
}
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
16.01.2011, 13:55     как вставить строки ..пожалуйстаа^^ #3
2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <ctime>
#include <algorithm>
using namespace std;
 
int main(){
    srand(time(0));
    int n, mas[n], meter=0;
    cout<<"input n\n";
    cin>>n;
    for_each(mas, mas+n, [](int &x){x=rand()%20-10; cout<<x<<" ";});
    cout<<"\n\n";
    for_each(mas, mas+n, [&](int &x){
             if(count(mas, mas+n, x)>1){
                cout<<x<<" ";
                ++meter;
             }
             if(&x==mas+n-1)cout<<"\n\n"<<meter;
             });
}
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
16.01.2011, 13:56     как вставить строки ..пожалуйстаа^^ #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
// Вторая задача
#include <conio.h>
#include<iostream.h>
int main()
{
 
        int i, n, j=0, k=0, ch=0, mat[255];
        cout<<" Vvedite n :\n";
        cin>>n;
        cout<<" Vvedite matricy :\n";
        for (i=0; i<n; i++) cin>>mat[i];
        cout<<"\n Poluchaem matricy :\n";
        for (i=0; i<n; i++)
        {
            k=0;
            for (j=0; j<n; j++)
            {
               if (mat[i]==mat[j] && i!=j) k++;
            }   
            if (k>0) {cout<<mat[i]<<" "; ch++;}
        }
        cout<<"\n\nRazmer matricu = "<<ch;
        getch();
}
ensoleille
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 34
16.01.2011, 14:17  [ТС]     как вставить строки ..пожалуйстаа^^ #5
спасибо вам огромное)
пусть и с++,разберусь как будет в с
еще раз спасибо)

Добавлено через 16 минут
хотя нет.у меня в первой задаче выходит вот. а дальше с циклом for непонятки творятся(

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
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>
void main()
{   
    int **a;
    int M,N,i,j,K;
    puts("Vvedite kolichesto strok - M");
    scanf("%d",&M);
    puts("Vvedite kolichestvo stolbtcov - N");
    scanf("%d",&N);
    a=(int**)malloc(M*sizeof(int*));
    for(i=0;i<M;i++)
        *(a+i)=(int*)malloc(N*sizeof(int));
            for(i=0;i<M;i++)
            for(j=0;j<N;j++)
                a[i][j]=rand()%20-1;
    for(i=0;i<M;i++)
        {
            for(j=0;j<N;j++)
                printf("%4d",a[i][j]);
                puts("\n");
        }
    puts("Vvedite chislo K ( K>=1 && K<=M )");
    scanf("%d",&K);
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
16.01.2011, 14:38     как вставить строки ..пожалуйстаа^^ #6
скомбинировал с кодом Александра
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
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>
 
main(){
        int **a;
        int M,N,i,j,K;
        puts("Vvedite kolichesto strok - M");
        scanf("%d",&M);
        puts("Vvedite kolichestvo stolbtcov - N");
        scanf("%d",&N);
        a=(int**)malloc(M*sizeof(int*));
        for(i=0;i<M;i++)
            *(a+i)=(int*)malloc(N*sizeof(int));
        for(i=0;i<M;i++)
            for(j=0;j<N;j++)
                a[i][j]=rand()%20-1;
        for(i=0;i<M;i++){
            for(j=0;j<N;j++)
                    printf("%4d",a[i][j]);
            puts("\n");
        }
        puts("Vvedite chislo K ( K>=1 && K<=M )");
        scanf("%d",&K);
        for (i=0; i<M; i++)
        {
            if (i==K)
            {
                     for (int u=0; u<3; u++) {for (int y=0; y<N; y++) printf("1 "); printf("\n");}
            }
            for (j=0; j<N; j++)
               printf("%d ", a[i][j]);
            printf("\n");
        }
 
}
ensoleille
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 34
16.01.2011, 14:50  [ТС]     как вставить строки ..пожалуйстаа^^ #7
а так выводит только 3 строки из единиц, а насколько я поняла должно выводить исходную матрицу с этими 3 строками из единиц перед строкой с номером K
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
16.01.2011, 14:59     как вставить строки ..пожалуйстаа^^ #8
так?
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
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>
 
main(){
        int **a;
        int M,N,i,j,K;
        puts("Vvedite kolichesto strok - M");
        scanf("%d",&M);
        puts("Vvedite kolichestvo stolbtcov - N");
        scanf("%d",&N);
        a=(int**)malloc(M*sizeof(int*));
        for(i=0;i<M;i++)
            *(a+i)=(int*)malloc(N*sizeof(int));
        for(i=0;i<M;i++)
            for(j=0;j<N;j++)
                a[i][j]=rand()%20-1;
        for(i=0;i<M;i++){
            for(j=0;j<N;j++)
                    printf("%4d",a[i][j]);
            puts("\n");
        }
        puts("Vvedite chislo K ( K>=1 && K<=M )");
        scanf("%d",&K);
        for (i=K; i<M; i++)
        {
            if (i==K)
            {
                     for (int u=0; u<3; u++) {for (int y=0; y<N; y++) printf("1 "); printf("\n");}
            }
            for (j=0; j<N; j++)
               printf("%d ", a[i][j]);
            printf("\n");
        }
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 17:11     как вставить строки ..пожалуйстаа^^
Еще ссылки по теме:

C++ Строки С++. В строке после каждого слова вставить запятую
C++ Строки. Вставить "*" между символами строки
как вставить перевод строки в конец? C++

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

Или воспользуйтесь поиском по форуму:
ensoleille
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 34
16.01.2011, 17:11  [ТС]     как вставить строки ..пожалуйстаа^^ #9
тоже немного не то.три строки с единицами то выводит.но при этом в корень изменяет строки перед ними или вообще же их не выводит..

Добавлено через 15 минут
а вот если так,то не выводит первую строку(тоесть нулевую ) но работает дальше как нужно

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
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>
 
main(){
        int **a;
        int M,N,i,j,K;
        puts("Vvedite kolichesto strok - M");
        scanf("%d",&M);
        puts("Vvedite kolichestvo stolbtcov - N");
        scanf("%d",&N);
        a=(int**)malloc(M*sizeof(int*));
        for(i=0;i<M;i++)
            *(a+i)=(int*)malloc(N*sizeof(int));
        for(i=0;i<M;i++)
            for(j=0;j<N;j++)
                a[i][j]=rand()%20-1;
        for(i=0;i<M;i++){
            for(j=0;j<N;j++)
                    printf("%4d",a[i][j]);
            puts("\n");
        }
        puts("Vvedite chislo K ( K >= 1 && K <= M )");
        scanf("%d",&K);
        puts("\n");
        for (i=K-1;i<M+3;i++)
        {
            if (i==K+1)
            {
                     for (int u=0;u<3;u++) {for (int y=0;y<N;y++) 
                        printf("   1"); 
                        puts("\n");}
            }
            for (j=0;j<N;j++)
            printf("%4d",a[i][j]);
            puts("\n");
        }
 
}
Добавлено через 1 час 37 минут
помогите еще пожалуйста со второй..с циклом if..и как посчитать количество элементов нового массива

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
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>
void main()
{
    int *a,*b;
    int i,j=0,N,k_ch=0;
    puts("Vvedite kolichestvo elementov massiva - N");
    scanf("%d",&N);
    a=(int*)malloc(N*sizeof(int));
    for(i=0;i<N;i++)
        a[i]=rand()%20-5;
    for(i=0;i<N;i++)
        {
            printf("%4d",*(a+i));
            puts("\n");
        }
    for(i=0;i<N;i++)    
        if(a[i]+=1)
            k_ch++;
    b=(int*)malloc(k_ch*sizeof(int));
        if(a[i]+=1)
            b[j++]=a[i];        
    for(j=0;j<k_ch;j++)
    printf("%4d",*(b+j));
    puts("\n");
}
Yandex
Объявления
16.01.2011, 17:11     как вставить строки ..пожалуйстаа^^
Ответ Создать тему
Опции темы

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