Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2012, 14:31   #1
Sand093
Новичок
Джуниор
 
Регистрация: 20.05.2012
Сообщений: 7
Вопрос Одномерные массивы, двумерные массивы, строки

Написал программы они не работаю на C++ Builder
1. Найти номер максимального элемента массива, Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
2.для заданной матрице размера 8 на 8 найти такие k, что к-я строка матрице совпадает с к-м столбцом.
3.Напишите программу которая считывает текст из файла и определяет сколько в этом слове. состоявших из не более чем 4-х букв.
Sand093 вне форума Ответить с цитированием
Старый 20.05.2012, 14:50   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хвастайся )
И расскажи как не работают.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.05.2012, 14:59   #3
Sand093
Новичок
Джуниор
 
Регистрация: 20.05.2012
Сообщений: 7
По умолчанию

ох
Найти номер максимального элемента массива
Код:
int main()
{
    const int SIZE=10;
    int v[SIZE]={1,3,2,4,6,5,7,9,8,10};
 
    int *max=v;
    for (int i=1;i<SIZE;i++)
     if(v[i]>(*max))
      max=&v[i];
 
    cout<<(max-v)+1;//номер наибольшего элемента
                    //+1 просто потому что привычнее видеть ведь элементы от 1 до 10
}
Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
Код:
int main()
{
    const int SIZE=10;
    int v[SIZE]={1,0,2,4,6,6,7,9,8,0};
 
    int *f0=0;
    int *s0=0;
    int sum=0;
    for (int i=0;i<SIZE;i++)
    {
        if (f0)
         sum+=v[i];
        if(v[i]==0)
         if(!f0)
          f0=&v[i];
         else if(!s0)
         {
             s0=&v[i];
             cout<<sum;
             break;
         }
    }
    if(!s0)
     cout<<"BOOM";//иначе нет у нас двух нолей в последовательности
}
для заданной матрице размера 8 на 8 найти такие k, что к-я строка матрице совпадает с к-м столбцом.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#define N 6
 
int main()
{       int spiral[N][N], Step, cur[4*(N-1)], shift[4*(N-1)];
        int i,j,k,c,edge;
 
//инициализация массива числами от 1 до 20
        srand(time(NULL));
        printf("Original array:\n");
        for(i=0;i<N;i++)
        {       for(j=0;j<N;j++) 
                {   spiral[i][j]=rand()%20+1;
                    printf("%6d",spiral[i][j]);
                }
                printf("\n");
        }
//запрос количества шагов поворота
        printf("\nHow many steps to turn? Step = ");
        scanf("%d",&Step);
        
        for(k=0; k<N/2;k++) //слои
        {       edge = N-1-k;
                
//снять слой      
        c=0;
        for(j=k;j<edge;j++)             
                {      cur[c] = spiral[k][j];
                        c++;
                }
                for(i=k;i<edge;i++)             
                {      cur[c] = spiral[i][edge];
                        c++;
                }
                for(j=edge;j>=k;j--)    
                {      cur[c] = spiral[edge][j];
                        c++;
                }
                for(i=edge-1;i>k;i--)             
                {       cur[c] = spiral[i][k];
                        c++;
                }
//переставить
        for(i=0;i<4*(N-2*k-1);i++)
            shift[(i+Step)%(4*(N-2*k-1))]=cur[i];
 
//одеть слой        
        c=0;
        for(j=k;j<edge;j++)             
                {   spiral[k][j] = shift[c];   
                    c++;
                }
                for(i=k;i<edge;i++)             
                {    spiral[i][edge]= shift[c];
                        c++;
                }
                for(j=edge;j>=k;j--)    
                {    spiral[edge][j]= shift[c];
                        c++;
                }
                for(i=edge-1;i>k;i--)             
                {     spiral[i][k]= shift[c];
                        c++;
                }
        }//for - переход на следующий слой
      
 //Результат
        printf("Result:\n");
        for(i=0;i<N;i++)
        {       for(j=0;j<N;j++) printf("%6d",spiral[i][j]);
                printf("\n");
        }
 
        getch();
        return 0;
}
3.Напишите программу которая считывает текст из файла и определяет сколько в этом слове. состоявших из не более чем 4-х букв.
этой нету )

Последний раз редактировалось ACE Valery; 20.05.2012 в 17:04.
Sand093 вне форума Ответить с цитированием
Старый 20.05.2012, 15:01   #4
Sand093
Новичок
Джуниор
 
Регистрация: 20.05.2012
Сообщений: 7
По умолчанию

у меня на пк работали в колледже +1оо5оо ошибок
Sand093 вне форума Ответить с цитированием
Старый 20.05.2012, 18:01   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

1)
Код:
int main()
{
    const int SIZE=10;
    int v[SIZE]={1,3,2,4,6,5,7,9,8,10};
 
    int max=0;
    for (int i=1;i<SIZE;i++) max=(v[i]>v[max])?i:max;
    cout<<(max+1);//номер наибольшего элемента
                    //+1 просто потому что привычнее видеть ведь элементы от 1 до 10
}
Цитата:
Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
Код:
Код:
int main()
{
    const int SIZE=10;
    int v[SIZE]={1,0,2,4,6,6,7,9,8,0};
 
    int sum=0; bool b=false;
    for (int i=0;i<SIZE;i++)
    {
      if(!v[i]) b=!b;
      if(b) sum+=v[i];
      if(!b && sum!=0) break;
    }
   cout<<sum;
}
Цитата:
для заданной матрице размера 8 на 8 найти такие k, что к-я строка матрице совпадает с к-м столбцом.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#define N 6
 
int main()
{       int spiral[N][N], Step, cur[4*(N-1)], shift[4*(N-1)];
        int i,j,k,c,edge;
 
//инициализация массива числами от 1 до 20
        srand(time(NULL));
        printf("Original array:\n");
        for(i=0;i<N;i++)
        {       for(j=0;j<N;j++) 
                {   spiral[i][j]=rand()%20+1;
                    printf("%6d",spiral[i][j]);
                }
                printf("\n");
        }
        printf("Result:\n");
        for(i=0;i<N;i++)
        {  bool b=true;     
            for(j=0;j<N;j++) {
              if(spiral[i,j]!=spiral[j,i]){ b=false; break;}
            }; if(b) printf("колонка и строка №%d совпали", k)
        }
 
        getch();
        return 0;
}
Ничего из этого не проверял. Но думаю что смысл мне удалось передать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.05.2012, 18:40   #6
Sand093
Новичок
Джуниор
 
Регистрация: 20.05.2012
Сообщений: 7
По умолчанию

ох спасибо тебе )
посто у меня Visual C++ а в колледже C++ Builder (
Sand093 вне форума Ответить с цитированием
Старый 20.05.2012, 18:45   #7
Sand093
Новичок
Джуниор
 
Регистрация: 20.05.2012
Сообщений: 7
По умолчанию

А на 3.Напишите программу которая считывает текст из файла и определяет сколько в этом слове. состоявших из не более чем 4-х букв.
можеш написать программу ? просто я хз как
Sand093 вне форума Ответить с цитированием
Старый 20.05.2012, 18:52   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
посто у меня Visual C++ а в колледже C++ Builder (
Да по-моему они в первоначальном виде в принципе не должны работать )
Без обид, но я лично мало понял стратегию твоих примеров, потому свое и предложил
Цитата:
программу которая считывает текст из файла и определяет сколько в этом слове. состоявших из не более чем 4-х букв.
Что не получается? Считать текст или определить длину слов?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.05.2012, 19:26   #9
Sand093
Новичок
Джуниор
 
Регистрация: 20.05.2012
Сообщений: 7
По умолчанию

они и не работали ) вот я и написал на форум )
я тама не могу понят как написать программу )
Sand093 вне форума Ответить с цитированием
Старый 20.05.2012, 19:48   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тама эта тута, или здеся?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Одномерные и двумерные массивы Ален4ек Помощь студентам 4 06.01.2012 12:12
Одномерные и двумерные массивы Люба19 Помощь студентам 1 13.05.2011 20:15
Одномерные и двумерные массивы Woxx Паскаль, Turbo Pascal, PascalABC.NET 11 29.08.2010 14:57