Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] ввод и вывод


Автор: Neon325 8.4.2012, 20:00
дана полная программа-помогите ввод и вывод двумерного массива записать отдельно  в функции и ввод и вывод строки тоже записать как отдельные функции...
Код

#include <vcl.h>
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iomanip.h>

void create(int a[], int &n);
void print(int a[], int n);
int fibonachi(int n, int a[]);
void sozdat_matrix(int m[100][100], int &n, int &k);
void sort_matrix(int m[100][100],int n, int k);
stroka();


//-------------------------------------------
void main()
{
int a[100], m[100][100];
int n,k;
create(a,n);
print(a,n);
fibonachi (n,a);
sozdat_matrix(m,n,k);
sort_matrix(m,n,k);
stroka();
getch();
}
//----------------------------------------------
void create(int a[],int &n)
{
   srand(time(NULL));
   cout<<"n=";
   cin>>n;
   for (int i=0; i<n; i++) a[i]=rand()%100;
}
//================================================
void print(int a[],int n)
{
   cout<<"Massiv:";
   for(int i=0; i<n; i++) cout<<setw(4)<<a[i];
   cout<<"\n";
}
//===============================================
int fibonachi (int n, int a[])
{
   int q[100];
   int max, g, b, i, j, c, k=0;

   max=a[0];
   for (i=1; i<n; i++) if (max<a[i]) max=a[i];
   cout <<"max="<<max;

   g=0;
   b=1;
   q[0]=1;
   for (i=1; b<=max-g; i++)
   {
      c=g+b;
      g=b;
      b=c;
      q[i]=b;
      k++;
   }

   printf("\nFibonachi: ");
   for (j=0; j<=k; j++) cout<<setw(4)<<q[j]<<" ";

   cout<<"\nDelete Fibonachi: ";
   for (i=0; i<=k; i++)
      for (j=0; j<n; j++)
         if (q[i]==a[j])
         {
            for (b=j; b<=n-1; b++) a[b]=a[b+1];
            n=n-1;
            j--;
         }

   if (b<n-1) for (i=0; i<b-1; i++) cout<<a[i]<<" ";
   else for(int i=0; i<n; i++) cout<<setw(4)<<a[i]<<" ";
   cout <<"\n";
}

//============Создание двумерного массива и вывод на консоль============//
void sozdat_matrix(int m[100][100], int &n, int &k)
{
   printf("\nSize matrix:\n");
   srand(time(NULL));
   cout<<"n=";
   cin>>n;
   cout<<"k=";
   cin>>k;
   printf("\nMatrix:\n");
   for(int i=0;i<n;i++)
   {
      for (int j=0;j<k;j++)
      {
         m[i][j]=(rand()%100);
         cout<<setw(4)<<m[i][j];
      }
      printf("\n");
   }
}

void sort_matrix(int m[100][100],int n, int k)
{
   int i, j, z, p;
   cout<<"\n\Sort matrix:\n";
   for( z=0;z<n;z++)
   {
      for( i=0;i<(n-1);i++)
      {
         for( j=0;j<k;j++)
         {
            if (m[i][j]<m[i+1][j]) //i+1, двигаемся по вертикали
            {
               p=m[i+1][j]; //
               m[i+1][j]=m[i][j]; // SWAP (меняем местами)
               m[i][j]=p;
            }
         }
      }
   }
   for( i=0; i<n; i++)
   {
      for( j=0; j<k; j++) cout<<setw(4)<<m[i][j];
      cout<<"\n";
   }
}

stroka()
{
   char str[255], s[255];
   cout<<"Input stroku:\n";
   gets (str);
   char *stroka = new char [20];
   gets(stroka);
   OemToChar(stroka, s);
   cout<<"\n";

   char s1[255]="aAeEiIoOuU", s2[255]="";
   bool f;
   int i,j,k,b,n=0,h=0;
   i=0;
   while (i<strlen(s))
   {
      f=true;
      for (j=0; j<strlen(s1); j++) if (s[i]==s1[j]) f=false;
      if (f==false) if (i==0||s[i-1]==' ') while (s[i]!=' ') i++; 
      if (f) {s2[h]=s[i]; h++;}
      else if (s[i-1]!=' ') {s2[h]=s[i]; h++;};
      i++;
   }
   cout<<"\Otvet:\n";
   cout<<s2;
}



Автор: bsa 8.4.2012, 22:15
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)