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

Расписать задачу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ String в массив http://www.cyberforum.ru/cpp-beginners/thread389282.html
Нужно из string слова разделенные пробелами занести в массив каждое слово отдельно.Нельзя использовать тип *сhar. Как это сделать и какой массив нужно создавать?
C++ Перемена местами слагаемых #include <iostream> using namespace std; void main () { int a; int i,k=0,t,n,imax,imin,min=0,max=0; cin>>n; http://www.cyberforum.ru/cpp-beginners/thread389270.html
C++ Задача на матрицу
#include <iostream.h> int main () { int a,b; int n,m; int i,j,k=0; cout<<"n="; cin>>n; cout<<"m="; cin>>m; for (i=0; i<n; i++) for (j=0; j<m; j++)
декомпиляция exe C++
вот погуглил немного... вижу, что декомпиляция относительно небольшой программы вполне возможна. Если в самой программе в переменных инициализированные например значения с данными к БД, можно их извлечь при декомпиляции? Интересуют все варианты, включая снова сишный вариант и также ассемблерный. З.Ы. Вопрос интересует с точки зрения отладки и защиты своего приложения, а не взлома чужего.
C++ математический маятник http://www.cyberforum.ru/cpp-beginners/thread389212.html
какая длина математического маятника, если за время t он сделает n колебаний?
C++ Считывание с файла уравнения Здравствуйте! Помогите,пожалуйста,как считать с текстового файла уравнение n-ой степени так,чтобы в дальнейшем можно было работать с его аргументами (приводить подобные). Заранее спасибо. подробнее

Показать сообщение отдельно
Lifehouse
0 / 0 / 0
Регистрация: 12.11.2011
Сообщений: 58

Расписать задачу - C++

22.11.2011, 17:19. Просмотров 459. Ответов 0
Метки (Все метки)

Дана целочисленная матрица размера M × N. Найти номер последней из ее строк, содержащих максимальное количество одинаковых элементов.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int countSames(int *array, int width) {
  int i;
  int *counters = (int*)malloc(width * sizeof(int));
  // можно функцией memset
  for (i = 0; i < width; ++i) counters[i] = 0;
  for (i = 0; i < width; ++i) ++counters[array[i]];
 
  int result = 0;
  for (i = 0; i < width; ++i)
    if (counters[i] > 1)
      result += counters[i];
 
  free(counters);
  return result;
}
 
int main(int argc, char *argv[]) {
  srand(time(0));
  int height = 7 + rand() % 5;
  int width = 7 + rand() % 5;
  
  int i, j;
  int **matrix = (int **)malloc(height * sizeof(int*));
  
  for (i = 0; i < height; ++i) {
    matrix[i] = (int *)malloc(width *sizeof(int));
    printf("Row %3d:", i + 1);
    for (j = 0; j < width; ++j)
      printf("%3d", matrix[i][j] = rand() % width);
    int same = countSames(matrix[i], width);
    printf(" | %3d same", same);
    printf("\n");
  }
 
  int maxSameRowId = 0;
  int maxSameRowValue = countSames(matrix[maxSameRowId], width);
  for (i = 1; i < height; ++i) {
    int same = countSames(matrix[i], width);
    if (same >= maxSameRowValue) {
      maxSameRowId = i;
      maxSameRowValue = same;
    }
  }
 
  printf("\nMaximum same numbers %d are in row number %d\n",
    maxSameRowValue, maxSameRowId + 1);
 
  for (i = 0; i < height; ++i)
    free(matrix[i]);
  free(matrix);
 
  return 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include<stdio.h> /*Модуль функций стандартного ввода-вывода*/
#include<process.h>
#include<bios.h>
#include<alloc.h>/*Модуль функций работы с динамической памятью*/
#include<conio.h> /*Модуль функций расширения ввода-вывода(в Паскале
                    аналогичный модуль CRT)*/
/*Предварительное описание используемых в программе функций*/
 void inputmatr(float x[][20],int *m,int *n,char c);
 void outputmatr(float x[][20],int m,int n);
 int num_neg(float x[][20],int m,int n);
/*************************************************************************/
/*Главная программа(функция) включает вызовы функций ввода, вывода и
  обработки матрицы*/
 
 void main()
  {
   float x[20][20];
   int  mx, my;
   /*Матрица Х располагается в стеке, для матрицы А место выделяется
     в куче. Обработка матриц выполняется общими процедурами*/
   clrscr();
   remove("rez.dat");/*удаление файла результатов, если он имеется в текущем
   директории*/
   inputmatr(x,&mx,&my,'x');
   clrscr();
   printf("Вывод результатов обработки матрицы х\n");
   outputmatr(x,mx,my);
   printf("Количество столбцов с отрицательными элементами %i\n", num_neg(x,mx,my));
   printf("\n\n         Для выхода нажмите любую клавишу ");
   getch();/*Ввод символа с клавиатуры без эха на экране. */
  }
 
 
/***************************************************************/
/*Функция возврвщает количество столбцов матрицы,
               содержащие отрицательные элементы.*/
/*В функцию передается матрица как двумерный массив. Элементы матрицы
  обрабатываются с использованием индексных выражений*/
 int num_neg(float x[][20],int m,int n)
  {
   int count = 0;
   int i,j;
 
   for ( j = 0; j < n; i++)
   {
      for (i = 0; i < m; i++)
      {
         if (mas[i][j] < 0)
         {
            count++;
            break;
         }
      }
   }
   return count;
  }
/***************************************************************************/
/*Функция обеспечивает вывод результатов программы на экран или в файл*/
/*В функцию передается матрица как двумерный массив. Элементы матрицы
  обрабатываются с использованием индексных выражений*/
 void outputmatr(float x[][20],int m,int n)
  {int i,p,j,imax,jmax,*kol_min;
   FILE *f;
   printf("\n Вывод матрицы на экран<s> или в файл<f>?\n\n");
   if(((p=getch())=='f')||(p=='F')||(p=='а')||(p=='А'))
    {
     p='f';/*Переменная запоминает направление вывода*/
     if((f=fopen("rez.dat","at"))==NULL)/*Открытие файла в текстовом режиме
       для записи в конец файла*/
      {
       printf("Невозможно открыть файл для результатов\n"
           " Для выхода в DOS нажмите любую клавишу\n");
       getch();
       exit(0);
      }
    }
     else f=stdout;
   fprintf(f,"\tИсходная матрица x\n");
   for(i=0;i<m;i++)
    {
     for(j=0;j<n;j++)
      fprintf(f,"%8.2f",x[i][j]);
     fprintf(f,"\n");
    }
   kol_min=num_neg(x,m,n);
   fprintf(f,"количество отрицательных элементов в столбцах матрицы\n");
   for(j=0;j<n;j++)
      fprintf(f,"%8d",kol_min[j]);
   fprintf(f,"\n");
   max_el((float *)x,m,n,kol_min);
   fprintf(f,"\tПреобразованная матрица x\n");
   for(i=0;i<m;i++)
    {
     for(j=0;j<n;j++)
      fprintf(f,"%8.2f",x[i][j]);
     fprintf(f,"\n");
    }
   if(p=='f')fclose(f);
  }
/***********************************************************************/
/*Функция вводит исходные данные с клавиатуры или из файла*/
/*В функцию передается матрица как двумерный массив. Элементы матрицы
  обрабатываются с использованием индексных выражений*/
 void inputmatr(float x[][20],int *m,int *n,char c)
  {
   float xr;
   int  i,j,pr,ch;
   FILE *f; char p;
   clrscr();
   printf("Ввод размеров и элементов матрицы %c\n",c);
   printf("\n\n      Введите размеры матрицы m,n<=20\n ");
   /*Перед вводом с клавиатуры целесообразно очистить системный
     буфер клавиатуры*/
   /*while ((ch=scanf("%c",ch))!=0);getch()
     {ch=bioskey(0);
      putch(ch);
     }*/
   scanf("%d%d",m,n);
   printf(" Ввод матрицы с клавиатуры<k> или из файла<f>?\n");
   if(((p=getch())=='f')||(p=='F')||(p=='а')||(p=='А'))
    {
     p='f';
     if((f=fopen("matr.dat","rt"))==NULL)
      {
       printf("Исходный файл не найден\n Для выхода в DOS нажмите "
               "любую клавишу");
       getch();
       exit(0);
      }
    }
     else f=stdin;
   if(p!='f')printf("Введите элементы матрицы\n");
   for(i=0;i<*m;i++)
    for(j=0;j<*n;j++)
     {
      pr=fscanf(f,"%f",&xr);
      if(pr<=0)
       {
        if(pr==EOF)
         printf("Обнаружен конец файла\n");
        else
         printf("Ошибка чтения %s \n",(p=='f')?"из файла":"с клавиатуры");
        printf("Для выхода в DOS нажмите любую клавишу");
        getch();
        exit(0);
       }
      else x[i][j]=xr;
     }
   if(p=='f')fclose(f);
  }
Заранее большое спасибо

Добавлено через 52 минуты
Mne prosto etu zadachu sdelali , ya hotel poprosit' etu zadachu esli mozhno polegche sdelat' , a to prepodovatel' shknit na schet malloc , ** , mi ewe ih ne prohodili...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru