עבור לתוכן

[C] הצגת מערך דו מימדי

Featured Replies

פורסם

אחת המשימות שלי היא להציג מערך דו מימדי (מטריצה) ממספר עמודות ומספר שורות שקלטתי מהמשתמש.

הגעתי לתבונה שהדרך הטובה ביותר לעשות את זה היא לולאת FOR בתוך לולאת FOR אך ללא הצלחה.

נ.ב.

כל ערכי האינדקסים צריכים להיות שווים ל0.

הקוד (הוספתי את כל תחילת הקוד על מנת להמחיש על מה מדובר):

# include <stdio.h>
void main () {
int i,j,cols=0,rows=0,num,num0, num1, menu=9,mat[50][50]={0},arr[50]={0};

printf("Insert number of rows:");
scanf("%d",&j);
while(rows<0 ||rows>50){
printf("Error\n");
printf("Insert number of rows:");
scanf("%d",&rows);
}

printf("Insert number of colums:");
scanf("%d",&cols);
while(cols<0 || cols>50){
printf("Error\n");
printf("Insert number of colums:");
scanf("%d",&cols);
}


while(menu=9){
printf("1. Display the matrix.\n");
printf("2. Insert values to the matrix.\n");
printf("3. Transpose the matrix.\n");
printf("4. Sort the matrix by rows sum.\n");
printf("5. Sort the whole matrix.\n");
printf("6 .Print matrix value.\n");
printf("7. i-it power matrix.\n");
printf("8. Find sub matrices.\n");
printf("0. Exit.\n");
printf("Please enter your choise:");
scanf("%d",&menu);

switch(menu){
case 1:
for(i=0;i<rows;i++){
for(j=0;j<cols;j++){
scanf("&d ",&j);
}
scanf("%d ",&i);
}
printf("%d", mat[i][j]);

את העזרה אני צריך בCASE 1

פורסם

אני רגיל שאנשים מפרסמים שאלות על תוכנה בפורום תכנות, אני לא רגיל שאנשים מפרסמים שאלות על תכנות בפורום תוכנה... :P

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

אם אתה רוצה להדפיס את המטריצה, אז קודם סיים לקלוט אותה מהמשתמש ורק אז תדפיס אותה.

פורסם

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

כעקרון אתה לא צריך שום דבר חוץ ממטריצה עצמה. תנסה לכתוב (ולחשוב) בצורה מודולרית

ארכיון

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

דיונים חדשים