Ошибка "Too few arguments to function" - C (СИ)
Формулировка задачи:
Дана последовательность из n натуральных чисел.
Для каждого числа исходной последовательности заменить каждую цифру в записи ее дополнением до девяти и подсчитать количество цифр в записи числа.
Сформировать новую последовательность, поместив в неё для каждого исходного числа два значения-преобразованное число и количество цифр в записи числа. Упорядочить новую последовательность по-парно по возрастанию чисел. Вывести исходную и полученную последовательность на экран.
В программе использовать, функцию которая заменяет каждую цифру в записи числа ее дополнением до девяти и возвращает количество цифр в записи числа.
Я написал код выдаёт ошибку: Too few arguments to function. Незнаю как исправить. Код ещё не совсем доработанный.
#include<locale.h> #include<stdio.h> //int Vivod(int u[]); int Obrabotka(int x[],int y[], int z); int main(){ int a[10],b[10]; int n,i; setlocale( LC_ALL, ".1251" ); printf("Введите количество чисел массива\n"); scanf("%d",&n); printf("Введите последовательность из %d натуральных чисел\n",n); for (i=0;i<n;i++){ scanf("%d",&a[i]); } Obrabotka(a); //Vivod(a); return 0; } int Obrabotka(int x[]){ int i,m,l,p,k; p=0; k=0; m=1; for(i=0; i<10; i++) { while(l=x[i]%10!=0){ p+=m*(9-l); m*=10; x[i]/=10; k=k+1; } x[i]=p; return k; } } //int Vivod(int u[],int z,int y){ //int h; //z=10; //for(h=o;h<z;h++) //printf ("u[%d]=%d",h,u[h]); //return h; //}
Решение задачи: «Ошибка "Too few arguments to function"»
textual
Листинг программы
#include<locale.h> #include<stdio.h> int Obrabotka(int x[],int N); int main(){ int a[10],b[10]; int n,i; setlocale( LC_ALL, ".1251" ); printf("Введите количество чисел массива\n"); scanf("%d",&n); printf("Введите последовательность из %d натуральных чисел\n",n); for (i=0;i<n;i++){ scanf("%d",&a[i]); } Obrabotka(a,n); printf("Массив:\n"); for (i=0;i<n;i++) { printf("%d ",a[i]); } return 0; } int Obrabotka(int x[],int N){ int s,m,l,p,k; for(s=0; s<N; s++) { p=0; k=0; m=1; for(;x[s];x[s]/=10){ if((l=(x[s]%10))==0||(l=(x[s]%10))!=0){ p=p+(m*(9-l)); m=m*10; k=k+1;} } x[s]=p; } return k; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
и . - Определяем функцию с именем Obrabotka, которая принимает два аргумента типа int (x[] и N).
- В функции main() объявляем две массивы a[10] и b[10], а также переменные n и i типа int.
- Устанавливаем локальную настройку на русский язык с помощью функции setlocale().
- Выводим сообщение с просьбой ввести количество чисел в массиве и считываем это количество в переменную n с помощью функции scanf().
- Выводим сообщение с просьбой ввести последовательность из n натуральных чисел и считываем эти числа в массив a с помощью функции scanf().
- Вызываем функцию Obrabotka(a,n) и передаем ей в качестве аргументов массив a и его размер n.
- Выводим содержимое массива a с помощью цикла for и функции printf().
- В функции Obrabotka() объявляем переменные s, m, l, p, k типа int.
- В цикле for перебираем все элементы массива x[].
- Внутри цикла определяем переменную p=0 и инициализируем переменные m=1 и k=0.
- Начинаем цикл while(x[s]), который выполняется до тех пор, пока x[s] не станет равным нулю.
- Внутри цикла while определяем переменную l=(x[s]%10) и проверяем условие (l==0||l!=0).
- Если условие выполняется, то мы добавляем к переменной p значение m*(9-l) и умножаем m на 10.
- После каждой итерации цикла while увеличиваем значение переменной k на 1.
- После окончания цикла while присваиваем значение переменной x[s] значение переменной p.
- По завершении цикла for возвращаем значение переменной k.
- В функции main() возвращаем 0, что означает успешный конец работы программы.
- Запускаем программу.
- Вводим последовательность из 5 натуральных чисел: 12345 и нажимаем Enter.
- Программа выводит на экран массив a: 1 2 3 4 5.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д