Двумерный массив: организация ввода и вывода элементов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день. Мне нужно с клавиатуры ввести количество столбцов и количество строк массива. Минимум массив должен быть 2х2. Потом вводим с клавы первый елемент первой строки. потом второй елемент 1 строки. ну и первый ел. 2 строки и 2 ел. 2 строки. Ну и вывести массив на экран. Получилось только ввести с клавы кол. столбцов и строк. и задать условие, что они должны быть больше двух. А как вот дальше вывести на экран: Введите 1 ел. 1 строки: Введите 2 ел. 1 строки: и подставить их в массив у меня не получилось.
# include <stdio.h>
# include <math.h>
 
int main()
{
 int x,y;
printf("Vvedute koluchestvo stpok: ");
scanf("%d", &x);
printf("Vvedite koluchesto stolbcov: ");
scanf("%d", &y);
 
if(x<2 || y<2)
{
 printf("Oshubka. X i Y doljnu but' ne men'she 2");
}
else
{
 int a[x][y];
 for (int i=0; i<=x;i++)
 {
  printf("Vvedute %d element %d stpoku: \n", i+1);
  scanf("%d", &a[i]);
 } 
}
return 0;
}

Решение задачи: «Двумерный массив: организация ввода и вывода элементов»

textual
Листинг программы
 #include <stdio.h>
 
 int main(){
 
    int str = 0,stb=0, i=0, j=0;
 
    printf("STRINGS: ");
    scanf("%d",&str);
    printf("STOLBEZ: ");
    scanf("%d",&stb);
 
    int s[str][stb];
 
    for(i=0; i<str; i++){
        for(j=0; j<stb; j++){
            printf("\nENTER S[%d][%d]: ", i, j);
            scanf("%d", &(s[i][j]));
        }
    }
 
    int temp=0, temp2=0;
    for (i=0; i<str; i++){
        for(j=0;j<stb; j++){
            if(j==0){
                temp=s[i][j];
                s[i][j]=s[i][j+1];
                s[i][j+1]=temp;
            }
 
    for (i=0; i<str; i++){
        for(j=0;j<stb; j++){
            if  ( j==0 && ((s[i][j] % 2) && !(s[i][j+1]%2))){  //0.0 = нечетное 0.1 четное меняем
                 temp = s[i][j];
                 temp2= s[i][j+1];
                 s[i][j+1]=temp;
                 s[i][j]=temp2;
            } else {
                
            if ( j==0 && (!(s[i][j]%2) && (s[i][j+1]%2))){ //0.0 = четное 0.1 нечетное меняем
                 temp = s[i][j];
                 temp2= s[i][j+1];
                 s[i][j+1]=temp;
                 s[i][j]=temp2;
            }
        }
    }
}
    
    for(i=0;i<str;i++){
        for(j=0;j<stb;j++){
            printf(" S[%d][%d]:  %d\n", i, j, s[i][j]);
    }
}
 
     return 0;
}

Объяснение кода листинга программы

В этом коде пользователь вводит размеры двумерного массива с помощью функции scanf, а затем вводит значения элементов массива с помощью функции scanf. Код использует два вложенных цикла for для обмена значениями в определенных случаях. Код также использует оператор if для проверки определенных условий. После ввода всех значений, код выводит значения массива с помощью функции printf. Код не содержит ошибок и возвращает 0, что означает успешное выполнение.

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы