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

Рекурсия - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Либо я дурак либо.... http://www.cyberforum.ru/cpp-beginners/thread199408.html
Короче задание такое...создать матрицу, определить сумму элементов в тех стлбцах которые не содержат отрицательных элементов...но дело не в этом он мне пишет в 24 строке не найден или неопределен символ j это как понимать объясните а?#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<math.h> #include<string.h> #include<ctype.h> /*4.3*/ void VVmatrix(int m1) { puts("\n...
C++ Удаление слов Под С Удалить из предложения все слова, встречающиеся по одному разу. Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread199400.html
Замена слова C++
Под С В данном предложении заменить каждое слово child словом children. Заранее спасибо
C++ Найти длину самого короткого слова
Под С Найти длину самого короткого слова. Заранее спасибо
C++ Матрица! Сумма элементов строки http://www.cyberforum.ru/cpp-beginners/thread199396.html
Под С В данной действительной матрице порядка n найти сумму элементов строки, в которой располагается элемент с наименьшим значением. Заранее спасибо.
C++ Перемещение максимального элемента матрицы в левый верхний угол. На C Дана целочисленная матрица размером 7*4. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (один из них ) оказался в верхнем левом углу. Заранее спасибо. подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9382 / 5432 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
29.11.2010, 09:19     Рекурсия
кстати, максимальную/минимальную цифру можно проще найти... а для определения количества цифр и рекурсия никакая не нужна...
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
#include <stdio.h>
#include <math.h>
 
unsigned int sum(unsigned int number) { return ( number > 9 ) ? number % 10 + sum(number / 10) : number; }
 
unsigned int cnt(unsigned int number) { return (unsigned int)log10((double)number) + 1; }
 
unsigned int max(unsigned int number) { 
    return ( number < 10 ) ? number : ( number % 10 > number % 100 / 10 ) ?
        max((number / 100) * 10 + number % 10) : max(number / 10);
}
 
unsigned int min(unsigned int number){
    return ( number < 10 ) ? number : (number % 10 < number % 100 / 10 ) ?
        min((number / 100) * 10 + number % 10) : min(number / 10);
}
 
int main(void){
    unsigned int number;
    
    while ( printf("Number: ") && scanf("%u", &number) == 1 && number )
        printf("\tSum:\t%u\n\tCount:\t%u\n\tMax:\t%u\n\tMin:\t%u\n", sum(number), cnt(number), max(number), min(number));
    
    return 0;
}
 
Текущее время: 06:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru