tanszek:oktatas:szamitastechnika:karakterlancok_stringek

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:szamitastechnika:karakterlancok_stringek [2025/10/06 08:06] szabomtanszek:oktatas:szamitastechnika:karakterlancok_stringek [2025/11/18 18:24] (current) knehez
Line 66: Line 66:
     char eredmeny[100]; // Előre rögzített méretű karaktertömb     char eredmeny[100]; // Előre rögzített méretű karaktertömb
     int j = 0;     int j = 0;
-    for (int i = 0; szoveg[i] != '\0'; i++) {+    for (int i = 0; strlen(szoveg); i++) {
         if (szoveg[i] != ' ') {         if (szoveg[i] != ' ') {
             eredmeny[j] = szoveg[i];             eredmeny[j] = szoveg[i];
Line 72: Line 72:
         }         }
     }     }
-    eredmeny[j] = '\0'; 
     printf("A szóközök nélküli karaktertömb: %s\n", eredmeny);     printf("A szóközök nélküli karaktertömb: %s\n", eredmeny);
 } }
 </sxh> </sxh>
-6. Karakterek számolása egy karaktertömbben rekurzióval 
-A feladat: Írj egy programot, amely rekurzív függvény segítségével számolja meg, hány 'e' karakter található egy adott karaktertömbben!  
-     
  
-7. Karaktertömb szavakra bontása+6. Karaktertömb szavakra bontása
 A feladat: Írj egy programot, amely egy karaktertömbben lévő szavakat bontja fel, majd kiírja az egyes szavakat! A feladat: Írj egy programot, amely egy karaktertömbben lévő szavakat bontja fel, majd kiírja az egyes szavakat!
 <sxh c>  <sxh c> 
Line 116: Line 112:
 #include <string.h> #include <string.h>
 int main() { int main() {
-    char szoveg[] = "A karaktertömb cseréje a programozásban."; +    char szoveg[] = "A karaktertömb cseréje a programban."; 
-    for (int i = 0; szoveg[i] != '\0'; i++) {+    for (int i = 0; strlen(szoveg); i++) {
         if (szoveg[i] == 'a') {         if (szoveg[i] == 'a') {
             szoveg[i] = 'x';             szoveg[i] = 'x';
Line 140: Line 136:
 } }
 </sxh> </sxh>
-Komplex feladatok: 
-Két mátrix összeszorzása 
-<sxh c>  
-#include <stdio.h> 
-#include <stdlib.h> 
-#include <time.h> 
-#define MAX 100 
-// Függvény a mátrix kiírásához 
-void printMatrix(int matrix[MAX][MAX], int rows, int cols) { 
-    for (int i = 0; i < rows; i++) { 
-        for (int j = 0; j < cols; j++) { 
-            printf("%d\t", matrix[i][j]); 
-        } 
-        printf("\n"); 
-    } 
-} 
  
-// Függvény a két mátrix szorzatának kiszámításához 
- 
-void multiplyMatrices(int matrix1[MAX][MAX], int rows1, int cols1, int matrix2[MAX][MAX], int rows2, int cols2, int result[MAX][MAX]) { 
-    // Ellenőrzés: a két mátrix szorzatának megfelelő mérete 
-    if (cols1 != rows2) { 
-        printf("A ket matrix szorzatanak merete nem megfelelo.\n"); 
-        exit(1); // Kilépés hibakóddal 
-    } 
- 
-    for (int i = 0; i < rows1; i++) { 
-        for (int j = 0; j < cols2; j++) { 
-            result[i][j] = 0; 
- 
-            for (int k = 0; k < cols1; k++) { 
-                result[i][j] += matrix1[i][k] * matrix2[k][j]; 
-            } 
-        } 
-    } 
-} 
- 
-int main() { 
-    // Véletlenszám inicializálása 
-    srand(time(NULL)); 
- 
-    // Mátrix méreteinek bekérése 
-    int rows1, cols1, rows2, cols2; 
- 
-    printf("Adja meg az elso matrix meretet (sor oszlop): "); 
-    scanf("%d %d", &rows1, &cols1); //C99 előtt két sorba kell írni, két scanf (codeblock) 
- 
-    printf("Adja meg a masodik matrix meretet (sor oszlop): "); 
-    scanf("%d %d", &rows2, &cols2); //C99 előtt két sorba kell írni, két scanf (codeblock) 
- 
- 
-    if (rows1 > MAX || cols1 > MAX || rows2 > MAX || cols2 > MAX) { 
-        printf("A megadott méret túl nagy. Maximum méret: %d\n", MAX); 
-        return 1; // Kilépés hibakóddal 
-    } 
- 
-    // Mátrixok létrehozása és inicializálása véletlenszámokkal 
-    int matrix1[MAX][MAX], matrix2[MAX][MAX], result[MAX][MAX]; 
- 
-    for (int i = 0; i < rows1; i++) { 
-        for (int j = 0; j < cols1; j++) { 
-            matrix1[i][j] = rand() % 100; // Véletlenszám 0 és 99 között 
-        } 
-    } 
- 
-    for (int i = 0; i < rows2; i++) { 
-        for (int j = 0; j < cols2; j++) { 
-            matrix2[i][j] = rand() % 100; // Véletlenszám 0 és 99 között 
-        } 
-    } 
- 
-    // Eredeti mátrixok kiírása 
-    printf("Eredeti elso matrix:\n"); 
-    printMatrix(matrix1, rows1, cols1); 
-    printf("\nEredeti masodik matrix:\n"); 
-    printMatrix(matrix2, rows2, cols2); 
- 
-    // Mátrixok szorzata 
-    multiplyMatrices(matrix1, rows1, cols1, matrix2, rows2, cols2, result); 
- 
-    // Szorzat kiírása 
-    printf("\nA ket matrix szorzata:\n"); 
-    printMatrix(result, rows1, cols2); 
- 
-    return 0; // Sikeres végrehajtás 
-} 
-</sxh> 
-Mátrix maximális részmátrix megtalálása 
-<sxh c>  
-#include <stdio.h> 
-#include <stdlib.h> 
-#define MERET 100 
-int matrix[MERET + 1][MERET + 1]; 
-int main() { 
-    int n, bal, felso, jobb, also, i, j; 
-    long max; 
-    scanf("%d", &n); 
- 
-    for (i = 0; i < n; i++){ 
-        for (j = 0; j < n; j++){ 
-            scanf("%d", &matrix[i][j]); 
-        } 
-    } 
-    max = matrix[0][0]; 
-    for (bal = 0; bal < n; bal++){ 
-        for (felso = 0; felso < n; felso++){ 
-            for (jobb = bal; jobb < n; jobb++){ 
-                for (also = felso; also < n; also++) { 
-                    long osszeg = 0; 
-                    for (i = bal; i <= jobb; i++){ 
-                        for (j = felso; j <= also; j++){ 
-                            osszeg += matrix[i][j]; 
-                        } 
-                    } 
-                    if (osszeg > max){ 
-                        max = osszeg; 
-                    }  
-                 } 
-             } 
-        } 
-    } 
-    printf("%ld\n", max); 
-} 
-</sxh> 
tanszek/oktatas/szamitastechnika/karakterlancok_stringek.1759737970.txt.gz · Last modified: 2025/10/06 08:06 by szabom