Question in C3 (Advanced)
Question:

כתוב פונקציה אשר תוגדר באופן הבא:

char * func(char *s1,  char *s2)

הפונקציה אמורה לקלוט כפרמטרים שתי מחרוזות אשר נקלטו בתוכנית הראשית main ונשלחו לפונקציה.

ידוע כי כל התווים ב s1 שונים.

הפונקציה מחזירה את הכתובת של התו שנמצא ב s1 בעל המופעים הגדול ביותר ב s2. (שהופיע הכי הרבה ב s2) יש להניח שיש רק אחד כזה.

דוגמא:

s1 = bagcde

s2=abbbdddabaaaaaag

 

הפונקציה תחזיר את הכתובת של התו a שנמצא ב s1 אשר הופיע הכי הרבה (8 פעמים) ב s2.

0 People tried to answer this question


Comments:
1.  Elbaz Naor (05.01.2017 am 12.34.28)
solution

#include<stdio.h>
#include<conio.h>
#include<string.h>

char * func(char *s1, char *s2)
{
    int i, j, index_max=0, counter=0, counter_max=0;

    for (i = 0; i < strlen(s1); i++)
    {
        for (j = 0, counter=0; j < strlen(s2); j++)
            if (*(s1 + i) == *(s2 + j)) counter++;
        if (counter_max < counter)
        {
            counter_max = counter;
            index_max = i;
        }
    }
    return s1 + index_max;
}

void main()
{
    char s1[100], s2[100], *address;
    gets(s1);
    gets(s2);
    address = func(s1, s2);
}



History of edits
More Interactive Questions that might interest you In Computer