koala ви пишете просто загальними фразами:"почитайте в книжці в конспекті".Ось дайте відповідь на запитання я пишу на форумі програмістів,які багато знають,а вони мене відправляють читати книжку це нормально?

koala написав:
oleh007 написав:

koala можете більше не писати в цій темі,бо програміст з вас ніякий просто.

Якби з цієї причини тут не можна було б писати, то ви тут, мабуть, і зареєструватися б не змогли.

koala ви розумієте що у ваших відповідях 0% користі.

koala написав:

1. Програму не можна розв'язати - її можна написати, скомпілювати, виконати, а розв'язати можна задачу і вузол.
2. А де у вашій програмі динамічний масив?

koala можете більше не писати в цій темі,бо програміст з вас ніякий просто.

4

(3 відповідей, залишених у C++)

koala написав:

Відповідь на ваше питання - "так", відповідь на питання, яке ставив ваш викладач - швидше за все - "ні".

І як це розуміти?

5

(6 відповідей, залишених у C++)

muroclav написав:
oleh007 написав:

Мені треба переробити програму і розвязати її за допомогою динамічних масивів

Так як конкретного питання я не побачив, переробляйте і розв'язуйте на здоров'я. Удачі вам)

Добре поставлю так запитання що потрібно замінити щоб виглядало що задача розвязана за допомогою динамічних масивів?

Як розвязати цю програму без використання динамічного масиву?

Завдання Дано матрицю розміром МхN. Сформувати з цієї мат-
риці вектор за правилом: перші N елементів вектора - це елемен-
ти матриці першого рядка, другі N елементів - елементи другого
рядка і т.д. (М=4; N=6).

#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<time.h>
#define n 4
#define h 6
 
int main()
{
    unsigned int i,j;
    int vect[2*h],a[n][h];
    system("chcp 1251 >> nul");
    srand((unsigned int)time(0));
 
    puts("Исходная матрица имеет вид:");
    for (i=0;i<n;++i) {
        for (j=0;j<h;++j) {
            a[i][j]=rand()%100-50;
            printf("%4d ",a[i][j]);
        }
        puts("");
    }
     for (j=0;j<h;++j) {
        vect[j]=a[0][j];
        vect[j+h]=a[1][j];
    }
     printf("\nВектор имеет вид: ");
    for (j=0; j<2*h; ++j) printf("%d ",vect[j]);
    puts("");
    
    system("pause");
    return 0;
}

7

(3 відповідей, залишених у C++)

Ця задача розвязана за допомогою вказівників?

#include <stdlib.h>
#define N 15
#define K 2
 
int main() {
    
    int i, j;
    int *items;
    int *tmp_items;
    items = (int *) malloc(sizeof(int) * N);
    tmp_items = (int *) malloc(sizeof(int) * K);
    
    
    srand(time(NULL));
    for (i = 0; i < N; i++) {
        items[i] = rand() % 100;
    }
    
        printf("Array:\n");
    for (i = 0; i < N; i++) {
        printf("%3d ", items[i]);
    }
    printf("\n");
    
    for (i = 0; i < K; i++) {
        tmp_items[i] = items[(N - 1) - i];
    }
    
    for (i = 0; i < N - K; i++) {
        items[N - i - 1] = items[N - K - i - 1];
    }
    
    for (i = 0; i < K; i++) {
        items[i] = tmp_items[K - i - 1];
    }
       
    printf("Result:\n");
    for (i = 0; i < N; i++) {
        printf("%3d ", items[i]);
    }
    printf("\n");
        
    free(items);
    free(tmp_items);
    
    return 0;
}

Мені треба переробити програму і розвязати її за допомогою динамічних масивів

Завдання:
Дано одновимірний масив Х, розміром 15 елементів.
Про-вести циклічний зсув елементів у масиві вправо на 2 позиції.

#include <stdlib.h>
#define N 15
#define K 2
 
int main() {
    
    int i, j;
    int *items;
    int *tmp_items;
    items = (int *) malloc(sizeof(int) * N);
    tmp_items = (int *) malloc(sizeof(int) * K);
    
    
    srand(time(NULL));
    for (i = 0; i < N; i++) {
        items[i] = rand() % 100;
    }
    
        printf("Array:\n");
    for (i = 0; i < N; i++) {
        printf("%3d ", items[i]);
    }
    printf("\n");
    
    for (i = 0; i < K; i++) {
        tmp_items[i] = items[(N - 1) - i];
    }
    
    for (i = 0; i < N - K; i++) {
        items[N - i - 1] = items[N - K - i - 1];
    }
    
    for (i = 0; i < K; i++) {
        items[i] = tmp_items[K - i - 1];
    }
       
    printf("Result:\n");
    for (i = 0; i < N; i++) {
        printf("%3d ", items[i]);
    }
    printf("\n");
        
    free(items);
    free(tmp_items);
    
    return 0;
}

9

(30 відповідей, залишених у C++)

Зрозуміло всім просто плювати на задачу.....

10

(30 відповідей, залишених у C++)

Механічні помилки ще ніхто не відміняв і ви відходите від теми.

11

(13 відповідей, залишених у C++)

koala написав:

Я б просто замінив всі масиви на вказівники:
   int vect[ 2*h ],a[ n ][ h ];

  int *vect = new int     [ 2*h ],
      **a    = new (int *)[ n    ];
  for(int i = 0; i < n; ++i)
        a[ i ] = new int     [ h    ];

ну і, відповідно, видалити потім все.

Альтернативні варіанти тут.

Тобто мены просто добавити ваш код з заміною в програму і все?

12

(30 відповідей, залишених у C++)

Так це мій код.

13

(30 відповідей, залишених у C++)

Мда і тишина....

14

(13 відповідей, залишених у C++)

Bartash написав:

SET MODE TELEPATHY ON

Гадаю, мова про те, щоб всякі

a[i][j]

замінити на

 *(a+i*h+j) 

Можливо так.

15

(13 відповідей, залишених у C++)

Bartash написав:
oleh007 написав:
koala написав:

Пане, я вмію читати. Продемонструйте і ви своє вміння читати і прочитайте те, що йде далі першого пункту.

2.Використати вказівники явно.
3.Таке завдання дали.
4.У мене не спроба,а розвязана задача,яку треба ще раз розвязати за допомогою вказівників.

SET TELEPATHY MODE OFF

...

Причому тут телепатія?

16

(30 відповідей, залишених у C++)

Ось що я писав у програмі можливо я щось не добре набрав
http://www.imageup.ru/img194/1674128/sk.png
http://www.imageup.ru/img194/1674129/snimok.png
Ось результат
http://www.imageup.ru/img194/1674130/k.png

17

(13 відповідей, залишених у C++)

koala написав:

Пане, я вмію читати. Продемонструйте і ви своє вміння читати і прочитайте те, що йде далі першого пункту.

2.Використати вказівники явно.
3.Таке завдання дали.
4.У мене не спроба,а розвязана задача,яку треба ще раз розвязати за допомогою вказівників.

18

(30 відповідей, залишених у C++)

#include<stdio.h>
#include<math.h>
main(){
short n;
double x,y;
short h;
for (n=0; n<5; n++){
printf("| x | y |\n");
printf("|-------|------------|\n");
for(x=0; x<4; x+=0.25){
if(x<1) y=-x;
else y=-0.333*x+0.333;
printf("| %5.2lf | %10.7lf |",x+n*4,y);
h=(y+1)*10;
if(y-1-h*10>0.5) h++;
if (y==0) {printf("***************");}
for(; h>0; h--) printf(" ");
printf("*\n");}
getch();}}

Ось вставив як ви казали код if (y==0) {printf("***************");} і нічого не змінилось.

19

(13 відповідей, залишених у C++)

koala написав:

1. Програму не можна розв'язати. Розв'язати можна задачу.
2. Ця програма використовує вказівники, тільки неявно.
3. А нащо? Що саме ви хочете зробити вказівниками?
4. Де ваша спроба розв'язання? В чому проблема?

Мені цю задачу треба розвязати за допомогою вказівників.

20

(13 відповідей, залишених у C++)

Як розвязати цю програму за допомогою вказівників?

#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<time.h>
#define n 4
#define h 6
 int main()
{
    unsigned int i,j;
    int vect[2*h],a[n][h];
    system("chcp 1251 >> nul");
    srand((unsigned int)time(0));
    puts("Исходная матрица имеет вид:");
    for (i=0;i<n;++i) {
        for (j=0;j<h;++j) {
            a[i][j]=rand()%100-50;
            printf("%4d ",a[i][j]);
        }
        puts("");
    }
     for (j=0;j<h;++j) {
        vect[j]=a[0][j];
        vect[j+h]=a[1][j];
    }
     printf("\nВектор имеет вид: ");
    for (j=0; j<2*h; ++j) printf("%d ",vect[j]);
    puts("");
    system("pause");
    return 0;
}

Завдання Дано матрицю розміром МхN. Сформувати з цієї мат-
риці вектор за правилом: перші N елементів вектора - це елемен-
ти матриці першого рядка, другі N елементів - елементи другого
рядка і т.д. (М=4; N=6).