Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //כתוב תוכנית לפי ההוראות הבאות :
- //א.בתוכנית יש פונקציה אשר קולטת כפרמטרים שני מספרים שלמים a, b הפונקציה מחזירה 1 אם b הוא ספרה בתוך a אחרת תחזיר 0 :
- // int f1(int a, int b)
- // לדוגמא אם נקלט 1540 בתוך a ואת הערך 5 בתוך b היא תחזיר 1.
- // לדוגמא אם נקלט 1540 בתוך a ואת הערך 8 בתוך b היא תחזיר 0.
- // ב.בתוכנית יש פונקציה אשר קולטת כפרמטרים מערך מספרי והגודל שלו
- // int * f2(int *arr, int n)
- // הפונקציה בודקת בעזרת הפונקציה מסעיף א בלבד כמה מספרים במערך מכילים את הספרה 3. הפונקציה מייצרת מערך דינמי שמכיל את המספרים האלה(שמכילים את הספרה 3).בסוף הפונקציה מחזירה את כתובת המערך החדש.
- // ג.התוכנית הראשית קולטת מספרים למערך בגודל 100, ולאחר מכן שולחת אותו לפונקציה שבסעיף ב, ומדפיסה את הנתונים במערך החדש.
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- int size = 0;
- int f1(int a, int b)
- {
- int temp =a, i=a;
- while (temp != 0)
- {
- if (temp % 10 == b)
- return 1;
- temp /= 10;
- }
- return 0;
- }
- int * f2(int *arr, int n)
- {
- int i, k=0,cnt=1,*nwarr=NULL;
- for (i = 0; i < n; i++)
- {
- if (f1(arr[i], 3))
- {
- nwarr = (int *)realloc(nwarr, sizeof(int)*cnt);
- nwarr[k++] = arr[i];
- cnt++;
- size++;
- }
- }
- return nwarr;
- }
- void main()
- {
- int num1, num2, temp = 0, *newarr=NULL,i, arr[5] = { 123,543,35,86,07 };
- newarr = f2(arr, 5);
- for (i = 0; i < size; i++)
- {
- printf(" %d", newarr[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement