Я новый студент CS, и я с трудом понимаю 2 мерных массива. Сейчас я просто пытаюсь распечатать его по 1 строке за раз.Печать 2-мерных массивов в C
Это мой код
#include <stdio.h>
#define N 3
int main(void)
{
int array[N][N], i, j, rows[N], cols[N];
for(i=0;i<N;i++)
{
printf("Enter row %d: ", i+1);
for(j=0;j<N;j++)
scanf("%d", &array[i][j]);
}
printf("The 5 rows you entered are: \n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%d", array[i][j]);
printf("\n");
}
}
printf("\n");
return 0;
}
Я хотел бы иметь программу распечатку:
1 2 3
1 2 3
1 2 3
Если я добавляю \n
он печатает:
1\n
2\n
3\n
1\n
2\n
3\n
1\n
2\n
3\n
Представьте, что \ n - это то, что распечатывает экран, я tr ying для представления того, что распечатывает код. У меня возникла проблема с тем, чтобы этот ящик распечатывал именно то, что я набираю. Это не позволит мне нажимать Enter снова и снова, чтобы представить, что на самом деле находится на экране команды.
без /n
он печатает
123123123
Я также пытаюсь добавить строки и столбцы. Мне удалось найти код и понять его, кроме одной строки. Это код.
#include <stdio.h>
int main(void)
{
int i, j, array[5][5], rows[5],cols[5];
for(i=0;i<5;i++)
{
printf("Enter row %d: ", i+1);
for(j=0;j<5;j++)
scanf("%d", &array[i][j]);
}
**for(i=0;i<5;rows[i]=cols[i]=0,i++);**
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
rows[i]=rows[i]+array[i][j];
cols[j]=cols[j]+array[i][j];
}
}
printf("\nRow Totals: ");
for(i=0;i<5;i++)
printf("%d\t", rows[i]);
printf("\nColumn Totals: ");
for(i=0;i<5;i++)
printf("%d\t", cols[i]);
printf("\n");
return 0;
}
for(i=0;i<5;rows[i]=cols[i]=0,i++);
является линия, которую я не понимаю. Во-первых, я действительно не понимаю rows[i]=cols[i]=0,i++
. И во-вторых, я не понимаю, почему после этого есть точка с запятой. Я думал, что для операторов не используются точки с запятой, но программа работает неправильно без этой строки или без точки с запятой. Когда я пытаюсь использовать его без этой строки кода, это дает мне сумасшедшие ответы, я предполагаю, потому что элементы в массиве не установлены в 0, и эта строка кода устанавливает элементы массивов в 0. Может ли кто-нибудь дать мне еще одна строка кода, которая может быть более понятной для кого-то, относительно нового для C? И, может быть, объясните мне, почему он использует точку с запятой?
Вы найдете ответы trhe легко читая книгу C, не задавая конкретные и, возможно, не связанные вопросы. – Olaf