Pālekt uz saturu


Foto
- - - - -

C programma ar masīvu aizveras uz DevC++


  • Lūdzu pieslēdzies, lai atbildētu
5 atbildes uz šo tēmu

#1 SLSK

SLSK
  • Biedri
  • 216 raksti
  • Atrodos:Rīga
  • Intereses:IT, mazliet programmēšana, auto, daba.

Pievienots 05 May 2012 - 09:10

Labdien!

Uzrakstīju programmu, kura apstrādā masīvu ar nejauši izvēlētiem skaitļiem, vai lietotāja ievadītiem. Problēma tāda, ka izstrāde notika uz Ubuntu kompilatoru, un viss strādāja.

Pārbaudot uz DevC++ programmu, sintakses kļūdas nebija, bet programma aizvērās brīdī, kad lietotājs izvēlējās 1 (automātiskā aizpilde) vai pēc manuālas masīvu vērtības ievades. Lūdzu paskatīt, kur varētu būt kļūda. Jau iepriekš - liels paldies!

#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <math.h>
using namespace std;
int raditaji(int** mas,int x,int y)
{

	 for(int i=0;i<x;i++)
	 {
		 for(int j=0;j<y;j++)
		 {
		 cout<<**mas<<" ";
			 ++**mas;
		 }
			  cout<<endl;
	 }
return 0;
    }
int mainigie(int** mas,int x,int y)
{
	 for (int i=0;i<x;i++)
    {
	   for(int j=0;j<y;j++)
	   {
	   mas[i][j]=rand()%10+1;
	   cout<<mas[i][j]<<" ";
	   }
	 cout<<endl;
    }
return 0;
}

int main()
{
	   
   
    srand ( time(NULL) ); 
    int x;
    int y;
    cout << "Autors: ..." << endl;
    cout << "Ievadiet masiva izmeru" <<endl;
    cout <<"X:";
    cin >> x;
    cout <<"Y:";
    cin >> y;
    int** masivs =new int* [x];
    for (int i=0;i<x;i++)
    {
	    masivs[i]=new int[y];
    }
    cout << "Ievadiet 1 automatiskai masiva aizpildei"<<endl;
    cout << "Ievadiet 2 manualai masiva aizpildei" <<endl;
    int izvele;
    bool test=false;
    do{
    cin >> izvele;
    switch(izvele)
    {
    case 1: test=true;
    cout << "Masivs tiks aizpildits automatiski" <<endl;
    mainigie(masivs,x,y);
    break;
    case 2: test= true;
    cout << "Masivs tiks aizpildits manuali" <<endl;
    cout << "Ievadiet skaitlus lidz tiek pazinots, ka masivs ir aizpildits"<<endl;
    for (int i=0;i<x;i++)
    {
	   for(int j=0;j<y;j++)
	   {
	   cin>> masivs[i][j];
	   }
    }
    cout << "Masivs ir aizpildits"<<endl;
    cout << "Ievadita masiva uzvade"<<endl;
    raditaji(masivs,x,y);
    break;
    default: cout<< "Ievadita nepareiza izvele. Ludzu atkartot to" <<endl; break;
    }
}while(test!=true);
    cin.get();
    return 0;
}



Nevēlies vairs redzēt šo reklāmu? Kļūsti par BOOT.Lv foruma biedru!

#2 abanormal

abanormal
  • Biedri
  • 172 raksti

Pievienots 05 May 2012 - 13:59

system("PAUSE"); , pieliec šo beigās , varbūt aizies?

Šo rakstu rediģēja abanormal: 05 May 2012 - 14:00


#3 Inspektors Caps

Inspektors Caps
  • Biedri
  • 1,871 raksti

Pievienots 05 May 2012 - 14:30

abanormal, nevis "varbūt aizies", bet viņam viss jau tagad strādā korekti. Vienkārši konsole aizveras līdz ar programmas beigām. Ja vēlas lai konsole neaizveras, vajag vai nu "cmd.exe" palaist manuāli un programmu darbināt no tās, vai pielikt beigās to pašu system("pause"); vai ko līdzīgu.

#4 SLSK

SLSK
  • Biedri
  • 216 raksti
  • Atrodos:Rīga
  • Intereses:IT, mazliet programmēšana, auto, daba.

Pievienots 05 May 2012 - 18:47

Liels paldies! Tagad es tikai vienu nesaprotu, kāpēc zem Ubuntu kompilatora viss darbojas tāpat?

#5 japets

japets
  • Biedri
  • 512 raksti

Pievienots 05 May 2012 - 19:19

Kādēļ māte savu kaķi pabaro un paglauda, bet meita savējo tikai pabaro? Vai tas atkarīgs no kaķa?
Acīmredzot zem Ubuntu izstrādes vide palaižot programmu uzvedas mazliet citādāk.

#6 vdl

vdl
  • Biedri
  • 99 raksti

Pievienots 05 May 2012 - 21:56

ja tu uz ubuntu palaid zem bash/sh tad tas ir tas pats kaa zem winda palaistu ieksh cmd - nekaada atshkjiriiba iisti nav


 
 
 
 


0 Lietotāji(s) lasa šo tēmu

0 biedri(s), 0 viesi(s), 0 anonīmi(s) lietotāji(s)