הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   עזרה ב-C - מטריצה (https://hosts.co.il/forums/showthread.php?t=69170)

Xinxy 06-11-08 10:17

ציטוט:

נכתב במקור על ידי Jerba (פרסם 679793)
ואין מצב שלמדתם מטריצות ואתם לא יודעים גדול שווה....כעיקרון גם במתמטיקה, כן אסור להשתמש במשו שלא למדת..

לא למדת דמיון , תפתור בלי דמיון

אבל הגדול שווה זה לא כ"כ נורא כי אפשר להסתדר בלעדיו

ועדיין אני צריך את עזרתכם בקשר לבדיקה |:

Jerba 06-11-08 15:45

בזמני הפרטי היום בערב אני אכנס ואפתור לך את התרגיל..
כעיקרון אתה פעם אחת רץ מעמודה לעמודה לעמודה ופעם אחת רץ משורה לשורה לשורה וככה בודק האם המילה שאתה מחפש מופיע ככה או ככה..

Xinxy 08-11-08 20:42

אוף אני כבר מיואש :\
הנה הדבר שניסיתי אבל גם הוא לא הצליח!
PHP קוד:

#include <stdio.h>
#define ROW 5
#define COL 5
#define MATRIX_SIZE 5

int main ()
{
     
char a[ROW][COL];
     
int ijk,
      
howmany 0,
      
ok 0,
      
found 0;
     
char forCheck[5];
 
     for(
05i++)
     {
         
printf("Please enter row number %d in the matrix: "1);
         
scanf("%s"a[i]);
     }

     
printf("\nThe Marix is:\n");

     for (
0MATRIX_SIZEi++)
     {
         for(
0MATRIX_SIZEj++)
         {
             
printf("%c "a[i][j]);
         }
         
printf("\n");
     }

     
printf("Please enter a word no longer than 5 letters or \"exit\" to leave the program:");
     
scanf("%s"forCheck);
 
     for (
0forCheck[i] != '\0'; ++i)
     {
         
howmany++;
     }

     
//מימין לשמאל
     
for(0howmanyj++)
     {
         for(
0ROWi++)
         {
             for(
0COLk++)
             {
                if(
forCheck[j] == a[i][k])
                {
                    
ok++;
                }
            }
        }
         
found ok;
         
ok 0;
    }
     
//סוף
     
     //מלמעלה למטה
     
for(0howmanyj++)
     {
         for(
0ROWi++)
         {
             for(
0COLk++)
             {
                if(
forCheck[j] == a[i][k])
                {
                    
ok++;
                }
            }
        }
         
found ok;
         
ok 0;
    }
     
//סוף

     //מלמטה למעלה
     
for(howmany0j--)
     {
         for(
ROW0i--)
         {
             for(
COL0k--)
             {
                if(
forCheck[j] == a[i][k])
                {
                    
ok++;
                }
            }
        }
         
found ok;
         
ok 0;
    }
    
//סוף

     //משמאל לימין
     
for(howmany0j--)
     {
         for(
ROW0i--)
         {
             for(
COL0k--)
             {
                if(
forCheck[j] == a[k][i])
                {
                    
ok++;
                }
            }
        }
         
found ok;
         
ok 0;
    }

         if(
found == 0)
         {
             
printf("not found");
         }
         else
         {
             
printf("%d"found);
         }




SDF 08-11-08 22:19

הנה הפתרון שלי, מחפש רק משמאל-לימין ומלמעלה למטה.
מתקפל יופי ב:
קוד:

gcc version 4.2.1 20070719  [FreeBSD]
לא ניסיתי קומפיילרים אחרים.

הקוד כאן


כל הזמנים הם GMT +2. הזמן כעת הוא 23:06.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ