Форум программистов, компьютерный форум CyberForum.ru

Переписать код с функцией - C++

Восстановить пароль Регистрация
 
Vonka
 Аватар для Vonka
1 / 1 / 0
Регистрация: 13.09.2013
Сообщений: 90
14.12.2013, 00:40     Переписать код с функцией #1
Как записать эту задачу с помощью функций?
Задача

Условие: Проверить, есть ли в матрице хотя бы одна строка, содержащая положительный элемент, и найти ее номер.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <math.h>
#include <locale.h>
#include <stdlib.h>
 
int main(){
    setlocale(LC_ALL,"rus");
 
    int **array_a;
    int column; //столбцы
    int line;   //Строки
 
    printf("Введите размер матрицы: ");
    scanf("%d%d", &line, &column);
 
    array_a = (int**)malloc(sizeof(int)*line);
    for(int i = 0; i < line; i++)
        array_a[i] = (int*)malloc(sizeof(int)*column);
 
    printf("Заполните матрицу: \n");
    for(int i = 0; i < line; i++)
        for(int j = 0; j < column; j++)
            scanf("%d", &array_a[i][j]);
 
    printf("Вывод матрицы:\n");
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            printf("%d ", array_a[i][j]);
        }
        printf("\n");
    }
 
    int fl = 0;
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            if(array_a[i][j] > 0){
                printf("Первая строка, содержащая положительные элементы: %d\n", i+1);
                fl = 1;
                break;
            }
        }
        if(fl)
            break;
    }
    if(!fl)
        printf("Нет строк, содержащих положительные элементы!\n");
    return 0;
}
Меню
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdio.h>
#include <ctype.h>
#include "iostream"
#include <string.h>
using namespace std;
int menu(); 
int sum(int aa, int bb); 
void kol(char *s); 
 
void f (char str[])    
{
    char smax[100];
    int max=0, a;
    char s[100];
    for( int i=0; i<strlen(str); i++)
    {   
        a = 0;
        strcpy( s, "" );
        for( int j = i, k = 0; str[ j ] != ' ' && str[ j ] != '\0'; j++, k++ )
        {
            a++;
            s[ k ] = str[ j ];
        }
        s[ a ] = '\0';
        if( a > max )
        {
            max = a;  
            strcpy( smax, s );
        }
    }
    cout<<"Самое длинное слово: "<<smax<<endl;
}
 
int sum(int aa, int bb)
{   
    return aa+bb; 
}
 
int main()
{  
    int a,b,c=0,k1=0;
    char s1[20];
    while(1)
    {
        switch(menu())  
        {
        case 1:
            printf("Введите А и Б: ");
            scanf("%d%d",&a,&b);   
            c=sum(a,b);
            printf("\nСумма= %d\n",c); 
            break;
        case 2:
            fflush(stdin);
            printf("Введите строку: \n");
            gets(s1);
            f(s1);  
            break;
        case 3: return 0;   
        }
    }
}
int menu()
{
    setlocale (0,"");
    int ch;
    do {
        printf("\nМеню: \n");
        printf("1. Посчитать сумму чисел\n");
        printf("2. Посчитать максимальное слово в строке\n");
        printf("3. Выход\n");
        printf("\nВаш выбор: ");
        scanf("%d",&ch);  
    }while(ch>3);
    return ch;
}

Как записать эту задачу (код) в это меню по цифру 1. Помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2013, 00:40     Переписать код с функцией
Посмотрите здесь:

Переписать код C++
Переписать код с Си C++
C++ переписать код с++
Переписать код с Паскаля на С++ C++
Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается C++
Не могу переписать код C++
C++ Переписать код программы
C++ Переписать код

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nomyac
2 / 9 / 1
Регистрация: 12.10.2013
Сообщений: 43
14.12.2013, 17:24     Переписать код с функцией #2
Сделал, но как-то это бредово)
Хватит уже копировать чужие коды, учись сам)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <stdio.h>
#include <ctype.h>
#include "iostream"
#include <string.h>
using namespace std;
int menu(); 
int sum(int aa, int bb); 
void kol(char *s); 
 
void a12()
{
    int **array_a;
    int column; //столбцы
    int line;   //Строки
 
    printf("Введите размер матрицы: ");
    scanf("%d%d", &line, &column);
 
    array_a = (int**)malloc(sizeof(int)*line);
    for(int i = 0; i < line; i++)
        array_a[i] = (int*)malloc(sizeof(int)*column);
 
    printf("Заполните матрицу: \n");
    for(int i = 0; i < line; i++)
        for(int j = 0; j < column; j++)
            scanf("%d", &array_a[i][j]);
 
    printf("Вывод матрицы:\n");
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            printf("%d ", array_a[i][j]);
        }
        printf("\n");
    }
 
    int fl = 0;
    for(int i = 0; i < line; i++){
        for(int j = 0; j < column; j++){
            if(array_a[i][j] > 0){
                printf("Первая строка, содержащая положительные элементы: %d\n", i+1);
                fl = 1;
                break;
            }
        }
        if(fl)
            break;
    }
    if(!fl)
        printf("Нет строк, содержащих положительные элементы!\n");
}
 
void f (char str[])    
{
    char smax[100];
    int max=0, a;
    char s[100];
    for( int i=0; i<strlen(str); i++)
    {   
        a = 0;
        strcpy( s, "" );
        for( int j = i, k = 0; str[ j ] != ' ' && str[ j ] != '\0'; j++, k++ )
        {
            a++;
            s[ k ] = str[ j ];
        }
        s[ a ] = '\0';
        if( a > max )
        {
            max = a;  
            strcpy( smax, s );
        }
    }
    cout<<"Самое длинное слово: "<<smax<<endl;
}
 
int sum(int aa, int bb)
{   
    return aa+bb; 
}
 
int main()
{  
    int a,b,c=0,k1=0;
    char s1[20];
    while(1)
    {
        switch(menu())  
        {
        case 1:
            a12();
            break;
        case 2:
            fflush(stdin);
            printf("Введите строку: \n");
            gets(s1);
            f(s1);  
            break;
        case 3: return 0;   
        }
    }
}
int menu()
{
    setlocale (0,"");
    int ch;
    do {
        printf("\nМеню: \n");
        printf("1. Вызов функции с матрицей\n");
        printf("2. Посчитать максимальное слово в строке\n");
        printf("3. Выход\n");
        printf("\nВаш выбор: ");
        scanf("%d",&ch);  
    }while(ch>3);
    return ch;
}
Yandex
Объявления
14.12.2013, 17:24     Переписать код с функцией
Ответ Создать тему
Опции темы

Текущее время: 21:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru