Изменить количество параметров функции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

в функцию fn передается два параметра: *w и n.. нужно сделать так, чтобы передавался только *w, а n сделать через ретен
#include<stdio.h> 

    int r,t;
    int fn(char *w, int n) 
    {   r++;
        if (*w == '\0') 
            return 0; 
        n += fn(w + 1, n); 
        char *temp = w; 
        if (*temp > 47 && *temp < 58) 
            n += ((int)*temp) - 48; 
 
        return n; 
    }    

    int root(char* snum) 
    {  t++;
        int n = 0; 
        n = fn(snum, n); 
 
        if (n<10)return n; 
 
        int s = 0; 
        char newmas[100]; 
        int i = 0; 
        while (n > 0) 
        { 
            s = n % 10; 
            n /= 10; 
            *(newmas+i) = (s + 48); 
            i++; 
        } 
        *(newmas + i) = '\0'; 
        printf("[%s]", newmas); 
        root(newmas); 
    } 

int main() 
{ 
    int n = 0; 
    char snum[100]; 
    
    printf("Enter a number: "); 
    gets(snum); 

    n = root(snum); 

    printf("\nrez=%d   %d", n, r+t); 
    
    return 0; 
}

Решение задачи: «Изменить количество параметров функции»

textual
Листинг программы
int fn(char *w) 
    {  int n=0; r++;

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы