Problém se spuštěním programu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Problém se spuštěním programu – C / C++ – Fórum – Programujte.comProblém se spuštěním programu – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
LUK4S3K0
Newbie
11. 5. 2014   #1
-
0
-

Dobrý večer

Dělám seminárku na hodinu programování. Tohle je zadání:


Matice (dvourozměrné pole) s maximálním rozměrem 50x50 prvku typu int (signed
 nebo unsigned - dle úvahy řešitele). Umožněte načtení dat z klávesnice a 
 ze souboru. Konkrétní rozměr matice zadá uživatel jako dvě první hodnoty 
 z klávesnice. Při načtení dat ze souboru jsou rozměry matice uloženy jako první
 dvě hodnoty v souboru. Soubor je textový. Výstup programu umožněte do souboru
 nebo na obrazovku. Ovládání programu umožněte pomocí jednoduchého menu. 
 Program musí obsahovat alespoň jednu uživatelskou funkci a musí být ošetřen
 proti chybným vstupům. Program vyhledá čtvrtý nejvetší prvek v horní 
 trojúhelníkové matici a vrátí jeho hodnotu jako výstup programu. Dále vrátí 
 jeho polohu v matici (např. hodnota 25, prvek 3,4 ).

Zde je program:

#include <stdio.h>
#include <stdlib.h>

int menu; /*promenna, pro ulozeni volby z menu*/
int i,j,l,rad,slo,pom; /*indexove promenne, pocet radku, pocet sloupcu, pomocna*/
int k=0; /*index do noveho pole, ve kterem budu radit*/
int pole[50][50]; /*misto pro ulozeni vstupni matice*/
int razeni[2500]; /*jednorozmerne pole pro serazeni prvku dle velikosti*/
int radky[2500]; /*souradnice radku*/
int sloupce[2500]; /*souradnice sloupce*/

int main(void) /*hlavni blok programu*/
{     /*vstupni menu*/
     printf ("******************* MENU **********************\n");
     printf ("* Vyber z nasledujicich moznosti              *\n");
     printf ("* 1. Nacti rozmer matice a matici ze souboru  *\n");
     printf ("* 2. Nacti rozmer matice a matici z klavesnice*\n");
     printf ("* 3. Konec                                    *\n");
     printf ("***********************************************\n");
     printf ("Zadej svoji volbu: \n");
     scanf("%u",&menu); /*nacte volbu*/
     switch (menu) /*pokracuje podle volby*/
         {
case 1:{ /*nacteni matice ze souboru*/
        FILE *fi;
        fi=fopen("vstup.txt","r");
        
         /*pokud soubor neexistuje, vypise hlasku a ceka na stisk klavesy, pak se program ukonci*/
        if (fi==NULL) { printf("Soubor nenalezen\n");
                        getch();
                        exit(0);};
                        
        fscanf (fi,"%u",&rad); /*prvni hodnota je pocet radku*/
        fscanf (fi,"%u",&slo); /*druha hodnota je pocet sloupcu*/
        
         /*naplneni pole vsemi hodnotami obsazenymi v matice*/
        for (i = 0; i < rad; i++) {
          for (j = 0; j < slo; j++) {
              fscanf(fi,"%u",&pole[i][j]);
                                    }          
                                }  
        fclose (fi); /*uzavreni souboru*/
        break;
        }
        
case 2:{ /*nacteni matice z klavesnice*/
        printf("Zadej rozmer matice>\n");
        
         /*osetreni vstupu, rozmer matice musi byt min 2x3, jinak by nebylo mozne,
         najit 4. nejvetsi prvek v horni trojuhelnike matici*/
        do{printf("Pocet radku (min 2,max 50): "); 
           scanf("%u",&rad);}
        while (rad<2||rad>50);
        
        do{printf("Pocet sloupcu (min 3,max 50): ");
           scanf("%u",&slo);}
        while (slo<3||slo>50);
        
         /*zadavani hodnot z klavesnice*/
        for (i = 0; i < rad; i++) {
          for (j = 0; j < slo; j++) {
              printf("zadej prvek na pozici> %u. radek a %u. sloupec>" ,i+1,j+1);
              scanf("%u",&pole[i][j]);
                                    }          
                                  } 
        break;
        }
        
case 3:{ /*volba pro ukonceni programu*/
        exit(0);
        break;
        }
        
default: { /*v pripade zadani jine hodnoty, to uzivateli oznami*/
          printf("Spatne zadano\n");
          getch();
          exit(0);
          break;
          }
          }  

 /*tento blok programu vypise zadanou matici*/
printf("\nNactena matice>");          
for (i = 0; i < rad; i++) {
    printf("\n");
    for (j = 0; j < slo; j++) {
        printf("%u",pole[i][j]);
        printf("\t");
                                }          
                           }     

 /*prvky se poskladaji za sebe do jednorozmerneho pole, kde je pozdeji
 bude mozno seradit; zaroven se naplni spodni trojuhelnikova matice 
 nejmensi moznou hodnotou, v mem pripade nulou; dale jsou plneny dalsi
 dva vektory, do prvniho se uklada aktualni radek a do druheho sktualni 
 sloupec, tedy souradnice prvku, je to potreba, abych po serazeni vedel
 kde se dany prvek nachazel*/    
       
for (i = 0; i < rad; i++) {
    for (j = 0; j < slo; j++) {
        if (i>j) razeni[k]=0;  /*je-li index radku vetsi nez index sloupcu, 
                               je prvek pod diagonalou, tedy ve spodni 
                               trojuhelnikove matici*/
           else razeni[k]=pole[i][j];
                radky[k]=i;
                sloupce[k]=j;
                k++;
                                    }          
                                } 
                                
 /*serazeni sestupne Bubblesortem*/
for (i = (k-1); i >= 0; i--){
    for (j = 0; j <= i; j++){
        if (razeni[j]<razeni[j+1]){ /*porovnani sousednich prvku*/
            /*prohozeni dvou hodnot, v pripade ze prvni je mensi*/
           pom=razeni[j];
           razeni[j]=razeni[j+1];
           razeni[j+1]=pom;
           
            /*soucasne prohodime hodnoty udavajici souradnici radku*/
           pom=radky[j];
           radky[j]=radky[j+1];
           radky[j+1]=pom;
           
            /*a hodnoty udavajici souradnici sloupcu*/
           pom=sloupce[j];
           sloupce[j]=sloupce[j+1];
           sloupce[j+1]=pom;
                                   }
                            }
                            }                       

 /*vyber typu vystupu uzivatelem*/
printf("\n\nKam chces napsat vysledek?");
printf("\n1. do souboru");
printf("\n2. na obrazovku");
printf("\n3. do souboru i na obrazovku\n");
printf("\nZadej svoji volbu: \n");

scanf("%u",&menu);
printf("\n");
switch (menu)
         {
case 1:{ /*vystup do souboru*/
        FILE *fo;
        fo=fopen("vystup.txt","wb"); /*otevre, v pripade, ze neexistuje, vytvori soubor vystup.txt*/
        fprintf(fo,"4.nejvetsi prvek v horni trojuhelnikovy matici je %u a nachazi se na %u.radku a v %u.sloupci",razeni[3],radky[3]+1,sloupce[3]+1); 
        /*trojka a +1, kvuli indexovani pole od nuly, tedy na treti pozici je 4. nejvetsi prvek a bez plus jednicky program vypisuje nultou souradnici*/
        printf("Vysledek byl zapsan do souboru vystup.txt, ktery byl vytvoren tam, kde se nachazi tento program. Program bude ukoncen po stisku klavesy.");
        fclose(fo);
        break;
        }
        
case 2:{ /*vystup na obrazovku*/
        printf("4.nejvetsi prvek v horni trojuhelnikovy matici je %u a nachazi se na %u.radku a v %u.sloupci\n",razeni[3],radky[3]+1,sloupce[3]+1);     
        printf("Program bude ukoncen po stisku klavesy.");
        break;
        }
        
case 3:{ /*kombinace obou predchozich*/
        FILE *fo;
        fo=fopen("vystup.txt","wb");
        fprintf(fo,"4.nejvetsi prvek v horni trojuhelnikovy matici je %u a nachazi se na %u.radku a v %u.sloupci",razeni[3],radky[3]+1,sloupce[3]+1);
        fclose(fo);
        printf("4.nejvetsi prvek v horni trojuhelnikovy matici je %u a nachazi se na %u.radku a v %u.sloupci\n",razeni[3],radky[3]+1,sloupce[3]+1);     
        printf("Program bude ukoncen po stisku klavesy.");
        break;
        }
        
default:{ /*po spatnem zadani, je to oznameno a program ukoncen*/
         printf("\nSpatne zadano!!! Program bude ukoncen po stisku klavesy.\n");
         break;
         }
          }
          
getch();  /*cekani na stisk klavesy*/
}

V programu Dev-C++ mi to jde zkompilovat, ale už to nejde spustit, protože to hlásí, že soubor není zkompilován. Kompilace proběhne v pořádku a napíše to OK.

Takže soubor se zkompiluje, ale nejde spustit. Nevěděl by někdo jak to spustit? CMD jsem zkoušel a tam to zase hází error, že gcc nebylo rozpoznáno.

Díky moc

Nahlásit jako SPAM
IP: 109.80.64.–
Reklama
Reklama
Kenvelo+1
Super člen
13. 5. 2014   #2
-
0
-

#1 LUK4S3K
A máš v Dev správně nastavený projekt pro C  a né pro C++ ? 

Nahlásit jako SPAM
IP: 89.177.219.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 86 hostů

Podobná vlákna

Problé se spuštěním. — založil SibleR

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý