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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Газмяс
0 / 0 / 0
Регистрация: 04.03.2009
Сообщений: 93
#1

Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента - C++

27.03.2009, 14:28. Просмотров 1188. Ответов 7
Метки нет (Все метки)

Дан массив A[N][M].Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2009, 14:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента (C++):

Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента - C++
Дан целочисленный массив А. Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента.

Заменить все элементы массива с отрицательным значением на значение минимального положительного элемента - C++
Объявить массив целых чисел и заполнить его случайными значениями с помощью функций srand() и rand(). Размер массива и диапазон значений...

Задачка на массив. Заменить все его элементы с отрицательным значением на значение минимального положительного элемента - C++
Здравствуйте. Помогите решить задачу. Задан массив А(н). Заменить все его элементы с отрицательным значением на значение минимального...

Одномерный массив. Заменить все элементы с отрицательным значением на значение минимального не равного 0 положительного элемента. - C++
тема массивы..(( заменить все элементы с отрицательным значением на значение минимального не равного 0 положительного элемента О_О

Заменить все отрицательные элементы массива на значение минимального элемента - C++
1) Задан массив из 6 действительных чисел. Заменить все элементы с отрицательным значением на значение минимального элемента.

Заменить все элементы массива большие чем "a" значением максимального элемента этого массива - C++
Всем драсте, в общем у меня такая же ситуация) помогите пожалуста написать програмки на массивах 1мерный масив: Заменить все элементы...

7
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.03.2009, 14:47 #2
цифра это 1 2 3 ..., то есть надо определять больше там одной цифры или нет, если да, то сложить их, если нет, просто заменить на минимальный

25 - минимальный элемент 2+5 == 7
1
Deicider
96 / 52 / 1
Регистрация: 18.03.2009
Сообщений: 273
27.03.2009, 16:35 #3
Итак, допустим, что массив именуется array[], а количество элементов в нем равно n.

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
int max = array[0];
int min = array[0];
 
// находим минимум и максимум
for (int i = 1; i < n; i++)
{
    if (array[i] > max)
        max = array[i];
    if (array[i] < min)
        min = array[i];
}
 
// раскладываем минимум по цифрам и суммируем их.
// Для примера я написал разложение для трехзначных числах. по аналогии напишите для разрядности, какая  Вам нужна
 
int one, ten, hundred;
 
one = (min % 100) % 10;
ten = (((min %100) – one) %10) / 10;
hundred = (min – 10*ten – one) % 100;
int sum = one + ten + hundred;
 
// заменяем максимальные элементы на сумму цифр минимального
 
for (int i = 0; i < n; i++)
{
    if (array[i] == max)
        array[i] = sum;
}
1
Газмяс
0 / 0 / 0
Регистрация: 04.03.2009
Сообщений: 93
27.03.2009, 16:52  [ТС] #4
а как ответ вывести! printf( "%d", sum); ??? или нет
0
Deicider
96 / 52 / 1
Регистрация: 18.03.2009
Сообщений: 273
27.03.2009, 17:01 #5
Газмяс,

Вывод суммы цифр:
cout << sum;

не забываем включить библиотеки iostream.h и math.h
0
Газмяс
0 / 0 / 0
Регистрация: 04.03.2009
Сообщений: 93
27.03.2009, 17:04  [ТС] #6
не получается!
ввожу массив ( 12,13,14,15,16,17,18,19,20,21)

Ответ выходит 12
0
rrrFer
Заблокирован
27.03.2009, 17:28 #7
поиск суммы цифр:
C
1
2
3
4
5
6
int f(char *s){
    int S=0;;
    for(int i=0,n=strlen(s);i<n;i++)
        S+=s[i]-48;
    return S;
}
и вместо
C++
1
2
3
4
int one, ten, hundred; 
one = (min % 100) % 10;
ten = (((min %100) – one) %10) / 10;
hundred = (min – 10*ten – one) % 100;int sum = one + ten + hundred;
можно написать:
cout<<f(itoa(min,s,10));
разница в том что сумма будет нормально искаться, если число имеет больше чем 3 разряда

Добавлено через 11 минут 26 секунд
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
#include <iostream>
using namespace std;
int f(char *s){
    int S=0;;
    for(int i=0,n=strlen(s);i<n;i++)
        S+=s[i]-48;
    return S;
}
int main(){
    int **a,n,S,m;
    char s[255];
    cin>>n>>m;
    a=new int*[n];
    for(int i=0;i<n;i++){
        a[i]=new int [n];
        for(int j=0;j<m;j++)
            cin>>a[i][j];
    }
    int min=a[0][0];
    int max=a[0][0];
    for(int j=0;j<n;j++){
        for(int i=0;i<m;i++)
            if(a[i][j]<min)
                min=a[i][j];
            else if(a[i][j]>max)
                max=a[i][j];
    }
    S=f(itoa(min,s,10));
    cout<<endl;
    for(int j=0;j<n;j++,cout<<endl){
        for(int i=0;i<m;i++)
            cout<<a[j][i]<<" ";
    }
    cout<<endl;
    for(int j=0;j<n;j++){
        for(int i=0;i<m;i++)
            if(a[i][j]==max)
                a[i][j]=S;
    }
    for(int j=0;j<n;j++,cout<<endl){
        for(int i=0;i<m;i++)
            cout<<a[j][i]<<" ";
    }
    cout<<endl;
    system("pause");
}
1
Газмяс
0 / 0 / 0
Регистрация: 04.03.2009
Сообщений: 93
29.03.2009, 12:43  [ТС] #8
вот что написал! не работает
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
#include "stdio.h"
#include"math.h"
#define N 2
#define M 4
 
 
int main ()
{
int a[N][M];
int k,z;
for (k=0;k<2;k++)
{printf("wedite element nomer %d",k);
scanf("%d",&a[k]);}
for (z=0;z<4;z++)
{printf("wedite element nomer %d",z);
scanf("%d",&a[z]);}
 
 
 
int i,j,imax,imin;
imax=a[0][0];
imin=a[0][0];
for ( i=0;i<N;i++)
for ( j=0;j<M;j++)
{if ( a[i][j]>=imax)
imax=a[i][j];
if(a[i][j]<=imin)
imin=a[i][j];
}
 
int x1,x2,x3,sum;
x1=imin/100;
x2=(imin-x1*100)/10;
x3=(imin-x1*100-x2*10);
sum=x1+x2+x3;
 
for ( i=0;i<=0;i++)
for ( j=0;j<=0;j++)
{
if (a[i][j]==imax)
a[i][j]=sum;
}
 
printf("Otvet",a[j][i]);
 
return 0;
}
#
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2009, 12:43
Привет! Вот еще темы с ответами:

Заменить все минимальные элементы вектора максимальным значением его элементов - C++
2) заменить все минимальные элементы вектора максимальным значением его элементов

Заменить все элементы главной диагонали заданной матрицы значением первого элемента - C++
Дан двумерный статический массив действительных чисел размером 6х5. Заменить все элементы главной диагонали первым элементом.

Заменить все элементы массива средним значением - C++
Дан список вещественных массивов (максимально 30 массивов). Каждый массив задается одной строкой в формате: ИМЯ=, максимальная длина строки...

Заменить все положительные элементы массива максимальным - C++
Помогите пожалуйста.:) Создать одномерный массив из 10 случайных целых чисел из интервала от -10 до 10. Найти максимальный элемент...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
29.03.2009, 12:43
Ответ Создать тему
Опции темы

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