#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
FILE *data;
if((data=fopen("data.txt","w"))==NULL)
printf("error");
else printf("massiv: \n");
printf("\n");
for(int k=0;k<n;k++)
{
zapoLNeNie()
{
int m;
int row; //строки
int col; //столбцы
printf("enter amount of elements --> "); // Введите количество элементов
scanf("%d",&row);
printf("\n");
row=col;
int **m = new int*[row];// матрица
// Создаем матрицу
for(int i = 0; i < row;++i)
{
m = new int[col];
for(int j = 0; j < col;++j)
m[j] = rand() %100;// заполняем случ.числами...........
преобразование двумерного массива в одномерный на языке Turbo C
Постановка задачи:
Создать двумерный массив [NxN] и записать его в текстовый файл.
Далее создать одномерный массив по правилу:
1 элемент - максимальное значение массива (описанного выше) минус минимальное, ||max1-min1
2 элемент - следующее максимальное по величине значение двумерного массива (кроме max1) минус самое минимальное значение, исключая min1..... ---> ||max2-min2
Записать массив в новом файле и вывести на экран.....
Код:
Код:
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
void BSort(int *,int);
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(0));
int row, col;
int i, j;
printf("Enter the amount of rows & columns: ");
scanf("%d%d", &row, &col);
int **mass = new int*[row];
for(i = 0; i < row; i++){
mass = new int[col];
for(j = 0; j < col; j++){
mass[j] = rand() % 100;
}
}
for(i = 0; i < row; i++){
for(j = 0; j < col; j++)
printf("%4d ", mass[j]);
printf("\n\n");
}
int n = row * col;
int *arr = new int[n];
int k = 0;
for(i = 0; i < row; i++){
for(j = 0; j < col; j++){
arr[k] = mass[j];
++k;
}
}
BSort(arr,n);
for([COLOR="Red"]int [/COLOR]i = 0;i < n;++i)
printf("%2d ",arr);
printf("\n");
k = n - 1;
int *arr1 = new int[n];
for([COLOR="Red"]int [/COLOR]i = 0;i < n;++i){
arr1 = arr - arr[k];
--k;
}
for(i = 0;i < n;++i)
printf("%2d ",arr1);
printf("\n");
ofstream out("f1.txt");
if(!out){
printf("Error");
exit(EXIT_FAILURE);
}
for(i = 0;i < n;++i)
out << arr1 << ' ';
for(i = 0; i < row; i++)
delete[] mass;
delete[] mass;
delete[] arr;
return 0;
}
void BSort(int *array,int size)
{
bool flag = true;
int i, j;
int temp;
for (j = 1; ; j++)
{
for(i = 0; i < size - j; i++)
if (array < array[i + 1])
{
temp = array;
array = array[i + 1];
array[i + 1] = temp;
flag = false;
}
if(flag)
break;
flag = true;
}
}
#include <fstream>
#include <ctime>
using namespace std;
void BSort(int *,int);
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(0));
int row, col;
int i, j;
printf("Enter the amount of rows & columns: ");
scanf("%d%d", &row, &col);
int **mass = new int*[row];
for(i = 0; i < row; i++){
mass = new int[col];
for(j = 0; j < col; j++){
mass[j] = rand() % 100;
}
}
for(i = 0; i < row; i++){
for(j = 0; j < col; j++)
printf("%4d ", mass[j]);
printf("\n\n");
}
int n = row * col;
int *arr = new int[n];
int k = 0;
for(i = 0; i < row; i++){
for(j = 0; j < col; j++){
arr[k] = mass[j];
++k;
}
}
BSort(arr,n);
for([COLOR="Red"]int [/COLOR]i = 0;i < n;++i)
printf("%2d ",arr);
printf("\n");
k = n - 1;
int *arr1 = new int[n];
for([COLOR="Red"]int [/COLOR]i = 0;i < n;++i){
arr1 = arr - arr[k];
--k;
}
for(i = 0;i < n;++i)
printf("%2d ",arr1);
printf("\n");
ofstream out("f1.txt");
if(!out){
printf("Error");
exit(EXIT_FAILURE);
}
for(i = 0;i < n;++i)
out << arr1 << ' ';
for(i = 0; i < row; i++)
delete[] mass;
delete[] mass;
delete[] arr;
return 0;
}
void BSort(int *array,int size)
{
bool flag = true;
int i, j;
int temp;
for (j = 1; ; j++)
{
for(i = 0; i < size - j; i++)
if (array < array[i + 1])
{
temp = array;
array = array[i + 1];
array[i + 1] = temp;
flag = false;
}
if(flag)
break;
flag = true;
}
}
Код:
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std; //не совсем понятно для чего....
void BSort(int *,int); // ?...размерность самого массива
int _tmain(int argc, _TCHAR* argv[]) // функция _tmain - макрос, который расширяется
// к соответствующей версии главной функции в зависимости от типа заявления:
{
srand(time(0));
int row, col;
int i, j;
printf("Enter the amount of rows & columns: ");
scanf("%d%d", &row, &col);
int **mass = new int*[row]; // * - уразатель
for(i = 0; i < row; i++)
{
mass = new int[col];
for(j = 0; j < col; j++)
{mass[j] = rand() % 100;}
}
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
printf("%4d ", mass[j]);
printf("\n\n");
}
int n = row * col;
int *arr = new int[n];
int k = 0;
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
{
arr[k] = mass[j];
++k;
}
}
BSort(arr,n);
for(int i = 0;i < n;++i)
printf("%2d ",arr);
printf("\n");
k = n - 1;
int *arr1 = new int[n];
for(int i = 0;i < n;++i)
{
arr1 = arr - arr[k];
--k; // --k; декримент
}
for(i = 0;i < n;++i)
printf("%2d ",arr1);
printf("\n");
ofstream out("f1.txt");
if(!out){
printf("Error");
exit(EXIT_FAILURE);
}
for(i = 0;i < n;++i)
out << arr1 << ' '; // вывод ?...
for(i = 0; i < row; i++)
delete[] mass;
delete[] mass;
delete[] arr;
return 0;
}
void BSort(int *array,int size)
{
bool flag = true;
int i, j;
int temp;
for (j = 1; ; j++)
{
for(i = 0; i < size - j; i++)
if (array < array[i + 1])
{
temp = array;
array = array[i + 1];
array[i + 1] = temp;
flag = false;
}
if(flag)
break;
flag = true;
}
}
#include <fstream>
#include <ctime>
using namespace std; //не совсем понятно для чего....
void BSort(int *,int); // ?...размерность самого массива
int _tmain(int argc, _TCHAR* argv[]) // функция _tmain - макрос, который расширяется
// к соответствующей версии главной функции в зависимости от типа заявления:
{
srand(time(0));
int row, col;
int i, j;
printf("Enter the amount of rows & columns: ");
scanf("%d%d", &row, &col);
int **mass = new int*[row]; // * - уразатель
for(i = 0; i < row; i++)
{
mass = new int[col];
for(j = 0; j < col; j++)
{mass[j] = rand() % 100;}
}
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
printf("%4d ", mass[j]);
printf("\n\n");
}
int n = row * col;
int *arr = new int[n];
int k = 0;
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
{
arr[k] = mass[j];
++k;
}
}
BSort(arr,n);
for(int i = 0;i < n;++i)
printf("%2d ",arr);
printf("\n");
k = n - 1;
int *arr1 = new int[n];
for(int i = 0;i < n;++i)
{
arr1 = arr - arr[k];
--k; // --k; декримент
}
for(i = 0;i < n;++i)
printf("%2d ",arr1);
printf("\n");
ofstream out("f1.txt");
if(!out){
printf("Error");
exit(EXIT_FAILURE);
}
for(i = 0;i < n;++i)
out << arr1 << ' '; // вывод ?...
for(i = 0; i < row; i++)
delete[] mass;
delete[] mass;
delete[] arr;
return 0;
}
void BSort(int *array,int size)
{
bool flag = true;
int i, j;
int temp;
for (j = 1; ; j++)
{
for(i = 0; i < size - j; i++)
if (array < array[i + 1])
{
temp = array;
array = array[i + 1];
array[i + 1] = temp;
flag = false;
}
if(flag)
break;
flag = true;
}
}
Цитата: Ошка
... только не могу разобраться до конца..... программа выводится с ошибкой....
Ошибка связана с тем,что Turbo C,наверно не все "понимает",я в Visual Studio 2005 делал. Какая конкретно ошибка ? Что пишет ?
1)using namespace std - для ofstream,для С не надо,используй FILE *data
2)int _tmain(int argc, _TCHAR* argv[]) - не знаю какой аналог главной функции в Turbo C ? void main,int main ?
3)размерность самого массива передается вторым параметром
//int _tmain(int argc, _TCHAR* argv[]) --> скорее просто main(int argc, char* argv[]....
выдает ошибку: **'i' : redefinition** переполение.....
Цитата: Ошка
по идее нам в turbo с нужно писать.... но у меня его нет.... в наличии с++ Builder и Visual С++....
//int _tmain(int argc, _TCHAR* argv[]) --> скорее просто main(int argc, char* argv[]....
выдает ошибку: **'i' : redefinition** переполение.....
//int _tmain(int argc, _TCHAR* argv[]) --> скорее просто main(int argc, char* argv[]....
выдает ошибку: **'i' : redefinition** переполение.....
Я там в коде(выше в посте) красным выделил то,что тебе надо убрать.Пробуй.
**счастье** ....)))....
там останется только отредактировать немного....
вывод.... ну думаю это уже не проблема!!!!
там дважды разница отображается, только с противоположным знаком....
Visual'e все нормально, попробую под С адаптировать.....
Спасибо наиогромнейшее!!!!!
Код:
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include <iostream.h>
#include <time.h> //stryktyrw i fiNkcii dL9 operacii с datami i vremenem
void Sort(int *,int);
main()
{srand(time(0)); // srand kalibriryet sly4aiNwi generator 4iseLa
int row, col;
int i, j;
printf("Enter the amount of rows & columns: ");
scanf("%d%d", &row, &col);
printf("\n");
int **mass = new int*[row]; /* int **mass -
eto ykazatel' Na ykazatel = new int*[row];
- eto vwdeLeNie pamyati pod stroki,
t.e cozdaNie dvymerNogo massiva s koLi4estvom strok = row. */
for(i = 0; i < row; i++)
// vwdeLyaem stroki pod stoLbcw
{
mass = new int[col];
for(j = 0; j < col; j++)
// prisvaivaem sLy4aiNoe zNa4eNie ka*domy eLemeNty
{mass[j] = rand() % 100;}
}
printf("Massiv:\n");
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
printf("%4d ", mass[j]); // vwvod matricw
printf("\n\n");
}
int n = row * col;
//formirovanue matricw arr
/* sozdanie massiva i poLy4rNie ykaZateL9 Na Nego */
int *arr = new int[n]; //new - dinam4eskoe vwdeLeNie pam9ti
int k = 0;
for(i = 0; i < row; i++)
{for(j = 0; j < col; j++)
{arr[k] = mass[j];
++k;}}
Sort(arr,n);
printf("ZNa4eniya massiva v poryadke ybwbaNiya:\n");
for(i = 0;i< n;++i)
printf("%2d ",arr);
printf("\n\n");
k = n - 1;
int *arr1 = new int[n];
for(i = 0;i < n;++i)
{arr1 = arr - arr[k];
--k;}
printf("Novwi Massiv --> Max-MiN\n");
for(i = 0;i < n;++i)
if (arr1 > 0)
printf("%2d ",arr1); //vwvod rezyL'tata
printf("\n");
for(i=0;i<n;++i)
for(i = 0; i < row; i++)
// delete --> ydalay66f9 komaNda; ydaL9et doLu daNNwx iZ faiLa
delete[] mass; //osvobo*denie pam9ti pod massiv
delete[] arr;
return 0;
}
void Sort(int *array,int size)
{
int flag = 1;
int i, j;
int temp;
for (j = 1; ; j++)
{for(i = 0; i < size - j; i++)
if (array < array[i + 1])
{temp = array;
array = array[i + 1];
array[i + 1] = temp;
flag = 0;}
if(flag)
break;
flag = 1;}
}
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include <iostream.h>
#include <time.h> //stryktyrw i fiNkcii dL9 operacii с datami i vremenem
void Sort(int *,int);
main()
{srand(time(0)); // srand kalibriryet sly4aiNwi generator 4iseLa
int row, col;
int i, j;
printf("Enter the amount of rows & columns: ");
scanf("%d%d", &row, &col);
printf("\n");
int **mass = new int*[row]; /* int **mass -
eto ykazatel' Na ykazatel = new int*[row];
- eto vwdeLeNie pamyati pod stroki,
t.e cozdaNie dvymerNogo massiva s koLi4estvom strok = row. */
for(i = 0; i < row; i++)
// vwdeLyaem stroki pod stoLbcw
{
mass = new int[col];
for(j = 0; j < col; j++)
// prisvaivaem sLy4aiNoe zNa4eNie ka*domy eLemeNty
{mass[j] = rand() % 100;}
}
printf("Massiv:\n");
for(i = 0; i < row; i++)
{
for(j = 0; j < col; j++)
printf("%4d ", mass[j]); // vwvod matricw
printf("\n\n");
}
int n = row * col;
//formirovanue matricw arr
/* sozdanie massiva i poLy4rNie ykaZateL9 Na Nego */
int *arr = new int[n]; //new - dinam4eskoe vwdeLeNie pam9ti
int k = 0;
for(i = 0; i < row; i++)
{for(j = 0; j < col; j++)
{arr[k] = mass[j];
++k;}}
Sort(arr,n);
printf("ZNa4eniya massiva v poryadke ybwbaNiya:\n");
for(i = 0;i< n;++i)
printf("%2d ",arr);
printf("\n\n");
k = n - 1;
int *arr1 = new int[n];
for(i = 0;i < n;++i)
{arr1 = arr - arr[k];
--k;}
printf("Novwi Massiv --> Max-MiN\n");
for(i = 0;i < n;++i)
if (arr1 > 0)
printf("%2d ",arr1); //vwvod rezyL'tata
printf("\n");
for(i=0;i<n;++i)
for(i = 0; i < row; i++)
// delete --> ydalay66f9 komaNda; ydaL9et doLu daNNwx iZ faiLa
delete[] mass; //osvobo*denie pam9ti pod massiv
delete[] arr;
return 0;
}
void Sort(int *array,int size)
{
int flag = 1;
int i, j;
int temp;
for (j = 1; ; j++)
{for(i = 0; i < size - j; i++)
if (array < array[i + 1])
{temp = array;
array = array[i + 1];
array[i + 1] = temp;
flag = 0;}
if(flag)
break;
flag = 1;}
}