עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

תרגיל בC מערך דו מימדי

Featured Replies

פורסם

נתקעתי בתרגיל ..אשמח לקבל עזרה (פיתרון)

הכוונה..כל דבר :(

תרגיל 1

מערך דו-מימדי יקרא תקין אם מתקיימים שני התנאים הבאים:

• בכל שורה במערך סכום איברי השורה שווה למספר השורה.

• כל איברי האלכסון חיוביים.

דוגמא למערך תקין:

4- 12- 0 15- 31

0 2 3- 1 1

11 23- 4 2- 12

7- 2 3 0 5

1 1 0 1 1

דוגמא למערך לא תקין:

5 4 3 2 1

0 9 8 7 6

5 4 3 2 1

0 9 8 7 6

5 4 3 2 1

• כתוב פונקציה המקבלת מערך דו ממדי של מספרים שלמים ומספר שורה ,row

ומחזירה 'אמת' אם סכום איברי שורה row שווה המספר row.

• כתוב פונקציה המקבלת את המערך, ומחזירה 'אמת' אם כל איברי האלכסון חיוביים.

• כתוב תכנית המציגה את המערך, ומזמנת את הפונקציות שכתבת בסעיפים א', ב' על מנת להציג הודעה אם המערך תקין, או שאינו תקין.

• המערך נקלט ממקלדת או מאותחל בתכנית הראשית.

• להגיש פלטים על מערך תקין לבחירתך וגם מערך שאינו תקין.

דוגמא פלט:

הדפסת של המטריצה הראשונה ואז

arrary is normal

כנ"ל לגבי השנייה

array is not normal

פורסם

#include <stdio.h>
#include <stdlib.h>
/* assuming array of int */

int getRow( int row ,int *array, int size );
int checkdiagonal( int *array, int size);
int checkArray(int *array, int size);

int main(void) {

int array[5][5] = {31,-15,0,-12,-4,1,1,-3,2,0,12,-2,4,-23,11,5,0,3,2,-7,1,1,0,1,1};
if( 1 == checkArray( (int*)array, 5) ) printf( "\nYAY\n");

return 0;
}
int checkArray(int *array, int size) {

if(size < 1 ) return -1;
int flag = 0;
int index = 0;
int indexCol = 0;
while(index < size) {
while( indexCol < size ) {
printf("%d ", *(array + size * index + indexCol) );
++indexCol;
}
printf("\n");
if( -1 == getRow( index, array, size) ) flag = 1;
indexCol=0;
++index;
}
printf("flag = %d\n", flag) ;
if( (1 == flag) || (-1 == checkdiagonal( array, size)) ) return -1;
return 1;
}


int getRow( int row ,int *array, int size ) {
/*assmuing NxN matrix */
if( (row < 0) && (size < 1) ) return -1;

int sum = 0;
int index = 0;
for(index = 0 ; index < size; ++index) {
sum+=*(array + size * row + index);
}
if (sum == row) return 1;
return -1;
}

int checkdiagonal( int *array, int size) { /* assuming NxN matrix */
if(size<1) return -1;
int index = 0;
while(index < size) {
if( *(array + size*index + index) <1 ) return -1;
++index;
} /*assuming 0 is a non-positive */
return 1;
}

בדקתי את זה רק עם מה שיש בתוך main

אם יש טעויות תסלח לי 4 בבוקר התחלתי לכתוב את זה.. (סעמק חשבתי שיקח לי חצי שעה!!!!!!!!! לכו תזכרו איך מעבירים מערך דו מימדי לפונקציה וניגשים אליו {סטודנט למדעי המחשב שנה שלישית} )

אני הייתי מציע לך לנסות לבד ולא להעתיק כי לומדים רק מניסיון

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.