С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
andodge
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 22
#1

вывод матрицы - C++

28.03.2012, 16:56. Просмотров 539. Ответов 6
Метки нет (Все метки)

почему выводит вместо одной матрицы пять штук?



#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<iostream.h>
#define m 7
#define n 5
using namespace std;

void gen_matr(char Uch[][15],char Pr[][10],int Ocen[][7])
{
printf("Predmety:\n");
for(int i=0;i<5;i++)
{ printf("%d predmety:",i);
scanf("%s",Pr[i]);
}
printf("Ucheniki:\n");
for(int i=0;i<7;i++)
{ printf("%s Uchenik:",i);
scanf("%s",Uch[i]);
}
printf("Ocenki:\n");
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
Ocen[i][j]=rand()%4+2;



}




void vvod(char Uch[][15],char Pr[][10],int Ocen[][7])
{
printf("Vvod dannyh\n");
for (int i=0;i<7;i++)
printf("%s", Uch[i]);
scanf("%s",Uch[1]);
scanf("%s",Uch[2]);
scanf("%s",Uch[5]);
scanf("%s",Uch[4]);
scanf("%s",Uch[3]);
scanf("%s",Uch[6]);
scanf("%s",Uch[7]);
{ for (int i=0;i<5;i++)
printf("%s",Pr[i]);
scanf("%s",Pr[1]);
scanf("%s",Pr[2]);
scanf("%s",Pr[3]);
scanf("%s",Pr[4]);
scanf("%s",Pr[5]);

printf("\n");
}
}

void vivod(char Uch[][15],char Pr[][10],int Ocen[][7])
{ printf("Vivod dannyh\n");
printf("%s"," TABLICA \n ");
for(int i=0;i<7;i++)
printf(" %s ",Uch[i]);

printf("\n");

for(int i=0;i<5;i++)
{ printf("%s\n",Pr[i]);


for(int i=0;i<n;i++)
{for(int j=0;j<m;j++)
printf("%4d",Ocen[i][j]);


printf("\n");
} }

printf("Vivod zakonchen\n");
printf("\n");

}
void zadacha(char Uch[][15],char Pr[][10],int Ocen[][7])
{
int countOfPupill=0;

for(int j=0;j<m;j++)
{ int tempCount=0;
for(int i=0;i<n;i++)
{ if (Ocen[i][j]<=3)
{ tempCount ++;
}
}
if (tempCount <=1)
{ countOfPupill ++;
}
}
cout << "Kol-vo: "<<countOfPupill <<'\n';
}

void menu(char Uch[][15],char Pr[][10],int Ocen[][7])
{ printf("======MENU======\n");
printf("1.Vvod\n");
printf("2.Vivod\n");
printf("3.zadacha\n");
printf("4.Vihod\n");
printf("Vvedi pynkt\n");
int t;
scanf("%d",&t);
switch(t)
{ case 1:vvod(Uch,Pr,Ocen);break;
case 2:vivod(Uch,Pr,Ocen);break;
case 3:zadacha(Uch,Pr,Ocen);break;
case 4:exit(0);
}
}

void main()
{ char Uch[7][15],Pr[5][10];
int Ocen[5][7];


while (true)
menu(Uch,Pr,Ocen);
printf("konec\n");
}

getchar();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2012, 16:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вывод матрицы (C++):

Реализовать задание с использованием функций (ввод матрицы, вывод матрицы, вычисление суммы) - C++
Реализовать задание с использованием функций (ввод матрицы, вывод матрицы, вычисление суммы) и цикла for для вычисления суммы. Изменение...

Написать и протестировать подпрограмму, которая переставляет в обратном порядке элементы главной диагонали квадратной матрицы - вывод всей матрицы - C++
Не знаю как сделать чтоб вся матрица была задание Написать и протестировать подпрограмму, которая переставляет в обратном порядке элементы...

Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю. Ввод,вывод,сумму в виде отдельных процедур - C++
Завтра дедлайн, а у меня 2 лабы и начало первого. Прошу помощи.

Вывод матрицы - C++
Как реализовать вывод матриц в виде 1 1 1 1 1 1 1 1 1 , а не 111111111? #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Вывод матрицы - C++
как сделать переход на новую строку, чтоб матрица выводилась в виде: 1 2 3 4 5 6 int** matrix_outp(int M, int N, int **matrix) { ...

Вывод матрицы - C++
Подскажите, пожалуйста, как сделать вывод,чтобы цифры располагались друг под другом, а не так: 1 111111 1 0 11 1 0 ...

6
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
28.03.2012, 17:06 #2
C++
1
2
3
4
5
6
7
8
9
10
for(int i=0;i<5;i++)
    { 
        printf("%s\n",Pr[i]);
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            printf("%4d",Ocen[i][j]);
            printf("\n");
        } 
    }
???
0
andodge
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 22
28.03.2012, 17:16  [ТС] #3
Здесь должна вывестись матрица 5Х7
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
28.03.2012, 17:43 #4
эт я понял. я указываю на другое

а вот этот выведет внутренность(т.е. вашу матрицу) 5 раз
C++
1
2
3
4
5
6
7
8
9
10
11
for(int i=0;i<5;i++)
        { 
                printf("%s\n",Pr[i]);
///вот этот цикл выведет матрицу 1 раз               
for(int i=0;i<n;i++)
                {
                        for(int j=0;j<m;j++)
                        printf("%4d",Ocen[i][j]);
                        printf("\n");
                } 
        }
Добавлено через 1 минуту
фактически предмет берется в цикле 5 раз, а для каждого предмета у вас выведется одна и та же матрица оценок

Добавлено через 3 минуты
если я правильно понял, каждому предмету соответствует строка оценок. тогда надо бы так

C++
1
2
3
4
5
6
7
for(int i=0;i<n;i++)
        { 
                printf("%s\n",Pr[i]);
                for(int j=0;j<m;j++)
                printf("%4d",Ocen[i][j]);
                printf("\n");
        }
0
andodge
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 22
28.03.2012, 17:50  [ТС] #5
мне надо вывести одну матрицу. Эта матрица состоит только из чисел 2,3,4,5, а он выводит пять одинаковых матриц, состоящих из всех чисел. как это исправить?
0
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
28.03.2012, 18:04 #6
я ж уже написал выше
замени им вот этот кусок в своем коде

C++
1
2
3
4
5
6
7
8
9
10
11
for(int i=0;i<5;i++)
{ printf("%s\n",Pr[i]);
 
 
for(int i=0;i<n;i++)
{for(int j=0;j<m;j++)
printf("%4d",Ocen[i][j]);
 
 
printf("\n");
} }
0
andodge
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 22
28.03.2012, 18:15  [ТС] #7
я заменил, но матрица получается 5 строк и 42 столбца, а нужно 5 строк и 7 столбцов; и состоит из разных чисел, а мне нужно только 2,3,4,5.
0
28.03.2012, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2012, 18:15
Привет! Вот еще темы с ответами:

Вывод матрицы - C++
Подскажите что и где прописать чтобы мне вывело новую матрицу где есть одинаковые строки #include &lt;iostream&gt; using namespace std; ...

Вывод матрицы на экран - C++
//* С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица.Найти элементы меньшие среднего арифметического. //*...

Вывод матрицы из файла.... - C++
Как вывести матрицу 5*5 из файла и записать в двумерный массив?

вывод матрицы. шаблонов - C++
помогите пожалуйста разобратся с программой. на данном этапе нужно вывести матрицу на экран при помощи шаблонов. ошибок не выдает, но не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.