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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2014, 16:40   #1
Карина Т_Т
Пользователь
 
Регистрация: 11.02.2014
Сообщений: 15
По умолчанию Помогите,программа выдает что то не то!

Задача : Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n)
Код:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
#include<Windows.h>

int main()
{
int** Matr;
int i, j, k, p;
long n, m;
int* c;
int* a;
int kol;
int f;
int g;

scanf("%d", &n);
scanf("%d", &m);

// выделение памяти под матрицу
Matr = (int**) malloc(m*sizeof(int*));

for(i=0;i<m;i++)
Matr[i] = (int*) malloc(n*sizeof(int));

// генератор случайных чисел
srand(time(0));

// заполнение матрицы случайными числами
for(i=0;i<m;i++)
for(j=0;j<n;j++)
Matr[i][j] = rand()%9;

// вывод матрицы
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d ", Matr[i][j]);
printf("\n");
}

// выделение памяти под массив B(n)
a = (int*) malloc(n*sizeof(int));

// заполнение массива случайными числами
for(j=0;j<n;j++)
a[j] = rand()%9;

// вывод массива
for(j=0;j<n;j++)
printf("%d ", a[j]);
printf("\n");

// поиск чисел из массива B которые встречаются более чем в одной строке
int l;
for(l=0;l<n;l++)
{
 kol = 0;
 g = 0;
 for(i=0;i<m;i++)
 {
  f = 0;
  for(j=0;j<n && f == 0;j++)
   if (Matr[i][j] == a[l])
     f = 1;
  if(f==1)
   g++;
 }
 if (g>=2)
  kol = kol+1;
}

printf("%d \n", kol);
system("pause");
return 0;
}
Карина Т_Т вне форума Ответить с цитированием
Старый 13.02.2014, 17:07   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

В другой теме я вам неправильно сделал задание.
Вот так вроде правильно.

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

// Найти все числа из массива B (n), которые встречаются более чем в одной строке матрицы A (m, n)

int main()
{
int** Matr;
int i, j, k, p;
long n, m;
int* c;
int* a;
int kol;
int f;
int g;
int l;

scanf("%d", &n);
scanf("%d", &m);

// выделение памяти под матрицу
Matr = (int**) malloc(m*sizeof(int*));

for(i=0;i<m;i++)
Matr[i] = (int*) malloc(n*sizeof(int));

// генератор случайных чисел
srand(time(0));

// заполнение матрицы случайными числами
for(i=0;i<m;i++)
for(j=0;j<n;j++)
Matr[i][j] = rand()%9;

// вывод матрицы
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d ", Matr[i][j]);
printf("\n");
}

printf("\n");

// выделение памяти под массив B(n)
a = (int*) malloc(n*sizeof(int));

// заполнение массива случайными числами
for(j=0;j<n;j++)
a[j] = rand()%9;

// вывод массива
for(j=0;j<n;j++)
printf("%d ", a[j]);
printf("\n\n");


kol = 0;
// поиск чисел из массива B которые встречаются более чем в одной строке
for(l=0;l<n;l++)
{
 g = 0;
 for(i=0;i<m;i++)
 {
  f = 0;
  for(j=0;j<n && f == 0;j++)  
   if (Matr[i][j] == a[l])
     f = 1;
  if(f==1)
   g++;
 }
 if (g>=2)
  kol = kol+1;
}

printf("%d", kol);

return 0;
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 13.02.2014, 17:33   #3
Карина Т_Т
Пользователь
 
Регистрация: 11.02.2014
Сообщений: 15
По умолчанию

Спасибо,а можно блондинка задаст вам еще один вопрос?) Я задаю матрицу 3х3,программа мне забивает случайные элементы,а после матрицы мне выбивает какие то числа.Что это http://pixs.ru/showimage/SnimokPNG_3468545_10860723.png
Карина Т_Т вне форума Ответить с цитированием
Старый 13.02.2014, 17:46   #4
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

Сперва выводится матрица A, затем вектор B (0 6 5) , затем количество 0
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 13.02.2014, 18:02   #5
Карина Т_Т
Пользователь
 
Регистрация: 11.02.2014
Сообщений: 15
По умолчанию

Ага,а зачем мне вектор в этой задаче?
Карина Т_Т вне форума Ответить с цитированием
Старый 13.02.2014, 18:05   #6
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

Одномерный массив называется вектором. У вас по условию задан массив B(n) и он выводится после матрицы A.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 13.02.2014, 18:07   #7
Карина Т_Т
Пользователь
 
Регистрация: 11.02.2014
Сообщений: 15
По умолчанию

Cпасибо большое,что помогли и на все ответили!

А Вы не могли бы помочь с еще одной задачей? (тоже с массивом связана)

Последний раз редактировалось Stilet; 14.02.2014 в 09:10.
Карина Т_Т вне форума Ответить с цитированием
Старый 13.02.2014, 22:01   #8
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

Какое у задачи условие?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 13.02.2014, 22:02   #9
Карина Т_Т
Пользователь
 
Регистрация: 11.02.2014
Сообщений: 15
По умолчанию

Смотрите, задача такова. Мы вводим любой текст ,а программа должна проверить ,что все фразы начинаются с большой буквы. При необходимости она должна откорректировать текст. Все это должно быть в консоле(язык программирования так же Си). Никаких оптимизаций не нужно,просто,что бы работала. Заранее благодарна !

Цитата:
Сообщение от challengerr Посмотреть сообщение
Какое у задачи условие?
Ну так что,поможете?

Последний раз редактировалось Stilet; 14.02.2014 в 09:13.
Карина Т_Т вне форума Ответить с цитированием
Старый 14.02.2014, 06:03   #10
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,609
По умолчанию

алфавит англ. критерий начала фразы - точка.
Код:
#include <stdio.h>

int main()
{
char c;
int f;

f = 1;

while (c=getchar())
{


if (c >= 'A' && c <= 'Z' && f ==1)
{
printf("%c", c); f = 0;
}
else if (c >= 'a' && c <= 'z' && f == 1)
{
c = 'A' + (c - 'a');
printf("%c", c);
f = 0;
}
else if (f==1)
{
printf("%c", c);
}
else if (c != '.' && f == 0)
{
printf("%c", c);
}
else if (c == '.' && f == 0)
{
printf("%c", c); f = 1;
}

}

return 0;
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выдает ошибку в программе,что не правильно я прописал. spectrum988 Помощь студентам 3 28.10.2013 10:00
Помогите разобраться что делает эта программа? (СИ) GroMkiY Помощь студентам 2 17.10.2013 10:31
Что выдает программа? Мaрина Помощь студентам 6 24.05.2013 11:25
Ребята, выдает ошибку. Что делать Наталишка Помощь студентам 0 18.02.2011 15:16
Выдает ошибку но работает.Что не так? Студло Помощь студентам 1 01.03.2010 09:12