Дан Двумерный Массив Из N Строк И M Столбцов.вывести Строки,в Которых

Тема в разделе "C/C++/C#", создана пользователем qwerty123123123, 1 июн 2014.

  1. qwerty123123123

    Регистрация:
    1 июн 2014
    Сообщения:
    6
    Симпатии:
    0
    Дан двумерный массив ,вывести строки,в которых нет нулевых элементов.Есть программа,но вместо строк,подходящих по условию,выдаются строки,которых не было в матрице.Где ошибка в коде?Язык -C

    Код ( (Unknown Language)):
    #include <stdio.h>
    #include <conio.h>

    void main (void)
    {
    int n,m,i,j,k;
    int a[10][10];
    //ввод матрицы
    printf("\n Vvedite kolochestvo strok i stolbcov: ");
    scanf("%d %d",&n,&m);
    printf(" Vvedite matricy %d*%d postrochno \n",n,m);


    {
    for (i = 1; i <= n; i++)
    {
    for (j = 1; j <= m; j++)
    scanf("%d",&a[i][j]);
    }

    }
    //вывод матрицы
    for(i=1;i<=n;i++)
    {

    for(j=1;j<=m;j++)
    printf("%d ",a[i][j]);
    printf("\n");
    }





    for(i=1;i<=n;i++)
    k=0;
    {
    for(j=1;j<=m;j++)
    if(a[i][j]!=0)
    k++;}
    if(k==m)
    {
    printf("Nylevie stroki:\n");
    for(j=1;j<=m;j++)
    {
    printf(" %d", a[i][j]);
    printf("\n");}
    }

    getch();
    }
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Как попало фигурные скобки ставишь потому что:
    Код (Text):
    #include <stdio.h>


    int main (void)
    {
    int n,m,i,j,k;
    int a[10][10];
    //ввод матрицы
    printf("\n Vvedite kolochestvo strok i stolbcov: ");
    scanf("%d %d",&n,&m);
    printf(" Vvedite matricy %d*%d postrochno \n",n,m);


    {
    for (i = 1; i <= n; i++)
    {
    for (j = 1; j <= m; j++)
    scanf("%d",&a[i][j]);
    }

    }
    //вывод матрицы
    for(i=1;i<=n;i++)
    {

    for(j=1;j<=m;j++)
    printf("%d ",a[i][j]);
    printf("\n");
    }

    for(i=1;i<=n;i++) {
    k=0;
    for(j=1;j<=m;j++)
    if(a[i][j]!=0)
    k++;
    if(k==m)
    {
    printf("NeNylevie stroki:\n");
    for(j=1;j<=m;j++)
    {
    printf(" %d", a[i][j]);
    }
    printf("\n");
    }
    }
    }
     
  3. qwerty123123123

    Регистрация:
    1 июн 2014
    Сообщения:
    6
    Симпатии:
    0

    Программа заработала,но как сделать,чтобы фраза"ненулевые строки" печаталась только один раз?
     
  4. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    Вынести
    printf("NeNylevie stroki:\n");
    перед циклом
     
  5. qwerty123123123

    Регистрация:
    1 июн 2014
    Сообщения:
    6
    Симпатии:
    0
    Код (C++):
     for(i=1;i<=n;i++) {
    k=0;
    for(j=1;j<=m;j++)
    if(a[i][j]!=0)
    k++;
    if(k==m)
    {
    printf("NeNylevie stroki:\n");
    for(j=1;j<=m;j++)
    {
    printf(" %d", a[i][j]);
    }
    printf("\n");
    }
    }
    }
    Вот перед эти циклом,да?
     
  6. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
  7. qwerty123123123

    Регистрация:
    1 июн 2014
    Сообщения:
    6
    Симпатии:
    0
    Спасибо большое
     
Загрузка...

Поделиться этой страницей