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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2014, 17:15   #1
sasha1212
Пользователь
 
Регистрация: 11.03.2014
Сообщений: 13
По умолчанию Дан двумерный массив.Вывести строки,в которых нет нулевых элементов

Дан двумерный массив,вывести строки,в которых нет нулевых элементов.Написал программу,но вместо нужных строк выводит совершенно другое.


123.jpg

Код:
#include <stdio.h>
#include <conio.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("Nylevie stroki:\n");
       printf(" %d", a[i][j]);
        printf("\n");
    }
    getch();
}
sasha1212 вне форума Ответить с цитированием
Старый 01.06.2014, 17:46   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Не совсем изящно, но....
Код:
#include <iostream>
#include <cstdlib>
#include <locale>
#include <iomanip>

using namespace std;

const int N = 10;
const int M = 8;

int main() {
	int A[N][M] = {	{1, 5, 9, 3, 0, 7, -1, 2}, 
			{3, 5, -8, 7, 3, 7, 2, -1},
			{0, 0, 0, 1, -6, 8, 7, 3},
			{0, 9, 7, 8, 3, 7, -7, -8},
			{1, 5, 9, 3, 0, 7, -1, 2}, 
			{3, -5, 8, 7, 3, 7, 2, -1},
			{0, 0, 0, 1, -6, 8, 7, 3},
			{0, 9, 7, 8, 3, 7, -7, -8},
			{10, 5, 9, 3, 4, 7, -1, 2}, 
			{-3, 5, 8, 7, 3, 7, 2, -1} };

	setlocale(0, "rus");
	
	cout << "\n Исходный массив:\n ----------------" << endl;
	for(int i = 0; i < N; i++) {
		for(int j = 0; j < M; j++) {
			cout << " [" << setw(2) << A[i][j] << "]";
		}
		cout << endl;
	}

	cout << "\n Результирующий массив:\n ----------------------" << endl;
	for(int i = 0; i < N; i++) {
	int count = 0;
		for(int j = 0; j < M; j++) {
			if(A[i][j] != 0)
				count++;
			else
				break;
		}
		if(count == M) {
			for(int j = 0; j < M; j++) {
				cout << " [" << setw(2) << A[i][j] << "]";
			}
			cout << endl;
		}
	}
	return 0;
}
1.jpg
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 01.06.2014 в 17:51.
Bugrimov вне форума Ответить с цитированием
Старый 01.06.2014, 18:36   #3
sasha1212
Пользователь
 
Регистрация: 11.03.2014
Сообщений: 13
По умолчанию

Довольно сложная программа получилась
sasha1212 вне форума Ответить с цитированием
Старый 01.06.2014, 20:12   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Спрашивайте, в чем сложность? Что не понятно, какая строка?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 01.06.2014, 20:17   #5
sasha1212
Пользователь
 
Регистрация: 11.03.2014
Сообщений: 13
По умолчанию

Если честно,много чего,я пока начинаю учиться программировать и нас учат на простых вещах
sasha1212 вне форума Ответить с цитированием
Старый 01.06.2014, 20:28   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Спрашивайте, в чем вопрос?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 01.06.2014, 21:31   #7
sasha1212
Пользователь
 
Регистрация: 11.03.2014
Сообщений: 13
По умолчанию

if(count == M) {
for(int j = 0; j < M; j++) {
cout << " [" << setw(2) << A[i][j] << "]";
}
cout << endl;


Что означает эта запись?
sasha1212 вне форума Ответить с цитированием
Старый 01.06.2014, 22:10   #8
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Подсчет количество элементов в строке которые не равны 0
Код:
for(int j = 0; j < M; j++) {
			if(A[i][j] != 0)
				count++;
			else
				break; // если встречается 0, то  прервать обход строки и проверять следующую строку
		}
Код:
if(count == M) { // Если все элементы не равны 0 то
for(int j = 0; j < M; j++) {
cout << " [" << setw(2) << A[i][j] << "]"; // выводим все элементы этой строки
}
cout << endl;
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двумерный массив А размера n*n . Найти произведение не нулевых элементов массива А находящийся в четных столбцах (Delphi) Kat9 Помощь студентам 1 02.03.2014 19:11
Дан одномерный массив элементов. Необходимо вывести все не повторяющиеся элементы filimoncc Помощь студентам 3 01.03.2014 13:20
Дан двумерный массив N*N Pascal вычеслить сумму элементов Aleksandr litvinch Паскаль, Turbo Pascal, PascalABC.NET 2 27.10.2013 22:24
Паскаль(файлы). Дан текстовый файл f. Вывести все строки файла длина которых больше 30 символов. Артемdgty Помощь студентам 0 09.10.2013 00:37
Дан двумерный массив. начиная с 1 строки сдвинуть все строки на 2 вниз, а последние 2 переместить на место первых двух строк. Proskurina Помощь студентам 5 03.03.2013 21:38