פורסם 2010 ביוני 315 שנים נתקעתי בתרגיל ..אשמח לקבל עזרה (פיתרון) הכוונה..כל דבר תרגיל 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
פורסם 2010 ביוני 415 שנים #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 בבוקר התחלתי לכתוב את זה.. (סעמק חשבתי שיקח לי חצי שעה!!!!!!!!! לכו תזכרו איך מעבירים מערך דו מימדי לפונקציה וניגשים אליו {סטודנט למדעי המחשב שנה שלישית} )אני הייתי מציע לך לנסות לבד ולא להעתיק כי לומדים רק מניסיון
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.