Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2021, 16:08   #1
Sashka0089
Новичок
Джуниор
 
Регистрация: 06.05.2021
Сообщений: 2
Сообщение Дан двумерный массив размером n*m, заполненный случайными числами из заданного пользователем промежутка. Удвоить все строки и столбцы, содержащие ноль, вывести результат на экран и в файл.

Помогите пожалуйста исправить и дописать код задачи (На СИ).
Дан двумерный массив размером n*m, заполненный случайными числами из заданного пользователем промежутка. Удвоить все строки и столбцы, содержащие ноль, вывести результат на экран и в файл.
Код:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <locale.h>

int main() {
FILE *f;
    setlocale(LC_ALL, "RUS");
    f = fopen("lala.txt","r");
    int a[3][3];
    int i,j;
    int n = 3;
    int x1,x2;
    int count=0;
int d,l;
    srand(time(NULL));

   printf("Введите промежуток значений от x1 до x2:\n");
   printf("x1: ");
   scanf("%d",&x1);
   printf("x2: ");
   scanf("%d",&x2);



    for (i = 0; i < 3; i++) {

        for (j = 0; j < 3; j++) {
            a[i][j] = rand() % (x2-x1)+x1;
            printf("%d\t", a[i][j]);
        }
        printf("\n");
    };
    printf("\n");

   for (int i=0;i<3;i++)
    for (int j=0;j<3;j++)
   {
       if (a[i][j]==0)
    for (l=0;l<i+1;l++)
        for(d=0;d<j+1;d++)
        a[l][d]=a[l][d]*2;
   }
for (i=0;i<3;i++){
    for (j=0;j<3;j++){

    printf("%d\t ",a[i][j]);}printf("\n");}
    return 0;

}
Sashka0089 вне форума Ответить с цитированием
Старый 12.05.2021, 04:49   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>

int main()
{
    setlocale(LC_ALL, "RUS");
    int n = 3;
    int a[n][n];
    int flags_i[n];
    int flags_j[n];
    int x1, x2;
    srand(time(NULL));

    printf("Введите промежуток значений от x1 до x2:\n");
    printf("x1: ");
    scanf("%d", &x1);
    printf("x2: ");
    scanf("%d", &x2);

    for (int i = 0; i < n; i++)
    {
        flags_i[i] = 0;
        for (int j = 0; j < n; j++)
        {
            flags_j[j] = 0;
            a[i][j] = rand() % (x2 - x1 + 1) + x1;
            printf("%d\t", a[i][j]);
        }
        printf("\n");
    };
    printf("\n");

    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (!a[i][j])
            {
                if (!flags_i[i])
                {
                    flags_i[i] = 1;
                    for (int k = 0; k < n; k++)
                        if (!flags_j[k])
                            a[i][k] *= 2;
                }
                if (!flags_j[j])
                {
                    flags_j[j] = 1;
                    for (int k = 0; k < n; k++)
                        if (!flags_i[k])
                            a[k][j] *= 2;
                }
            }

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            printf("%d\t", a[i][j]);
        printf("\n");
    }
    return 0;
}
Разберитесь в коде и исправьте одну размерность на m, добавьте вывод в файл.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Visual Basic 6.0] Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-135,175]. Удалить из него все элементы, первая и последняя цифра. Firstaid Помощь студентам 3 03.05.2018 16:49
Visual Basic. Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном массиве столбец... Nember Помощь студентам 0 21.12.2013 21:56
дан двумерный массив размером 5*6, заполненный случайным образом 1. заменить максимальный элемент каждой строки на противоположный Иляна Паскаль, Turbo Pascal, PascalABC.NET 1 20.01.2013 18:29
Дан массив целых чисел из 25 элементов,заполненный случайным образом числами из промежутка [-35,75] Vinam* Паскаль, Turbo Pascal, PascalABC.NET 3 23.12.2011 13:00
двумерный массив. вывести все строки, содержащие хотя бы один "0"(ноль) (написать через функцию в Delphi) BLADIMIR Помощь студентам 4 07.09.2011 21:24