Ошибка "Too few arguments to function" - C (СИ)

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

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

Дана последовательность из n натуральных чисел. Для каждого числа исходной последовательности заменить каждую цифру в записи ее дополнением до девяти и подсчитать количество цифр в записи числа. Сформировать новую последовательность, поместив в неё для каждого исходного числа два значения-преобразованное число и количество цифр в записи числа. Упорядочить новую последовательность по-парно по возрастанию чисел. Вывести исходную и полученную последовательность на экран. В программе использовать, функцию которая заменяет каждую цифру в записи числа ее дополнением до девяти и возвращает количество цифр в записи числа. Я написал код выдаёт ошибку: Too few arguments to function. Незнаю как исправить. Код ещё не совсем доработанный.
Листинг программы
  1. #include<locale.h>
  2. #include<stdio.h>
  3. //int Vivod(int u[]);
  4. int Obrabotka(int x[],int y[], int z);
  5. int main(){
  6. int a[10],b[10];
  7. int n,i;
  8. setlocale( LC_ALL, ".1251" );
  9. printf("Введите количество чисел массива\n");
  10. scanf("%d",&n);
  11. printf("Введите последовательность из %d натуральных чисел\n",n);
  12. for (i=0;i<n;i++){
  13. scanf("%d",&a[i]);
  14. }
  15. Obrabotka(a);
  16. //Vivod(a);
  17. return 0;
  18. }
  19. int Obrabotka(int x[]){
  20. int i,m,l,p,k;
  21. p=0;
  22. k=0;
  23. m=1;
  24. for(i=0; i<10; i++)
  25. {
  26. while(l=x[i]%10!=0){
  27. p+=m*(9-l);
  28. m*=10;
  29. x[i]/=10;
  30. k=k+1;
  31. }
  32. x[i]=p;
  33. return k;
  34. }
  35. }
  36. //int Vivod(int u[],int z,int y){
  37. //int h;
  38. //z=10;
  39. //for(h=o;h<z;h++)
  40. //printf ("u[%d]=%d",h,u[h]);
  41. //return h;
  42. //}

Решение задачи: «Ошибка "Too few arguments to function"»

textual
Листинг программы
  1. #include<locale.h>
  2. #include<stdio.h>
  3. int Obrabotka(int x[],int N);
  4. int main(){
  5.     int a[10],b[10];
  6.     int n,i;
  7.     setlocale( LC_ALL, ".1251" );
  8.     printf("Введите количество чисел массива\n");
  9.     scanf("%d",&n);
  10.     printf("Введите последовательность из %d натуральных чисел\n",n);
  11.     for (i=0;i<n;i++){
  12.     scanf("%d",&a[i]);
  13.     }
  14.     Obrabotka(a,n);
  15.     printf("Массив:\n");
  16.     for (i=0;i<n;i++)
  17. {
  18.     printf("%d ",a[i]);
  19. }
  20.     return 0;
  21. }
  22. int Obrabotka(int x[],int N){
  23.     int s,m,l,p,k;
  24.     for(s=0; s<N; s++)
  25. {   p=0;
  26.     k=0;
  27.     m=1;
  28.     for(;x[s];x[s]/=10){
  29.     if((l=(x[s]%10))==0||(l=(x[s]%10))!=0){
  30.         p=p+(m*(9-l));
  31.         m=m*10;
  32.         k=k+1;}
  33. }
  34.     x[s]=p;
  35. }
  36.     return k;
  37. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы: и .
  2. Определяем функцию с именем Obrabotka, которая принимает два аргумента типа int (x[] и N).
  3. В функции main() объявляем две массивы a[10] и b[10], а также переменные n и i типа int.
  4. Устанавливаем локальную настройку на русский язык с помощью функции setlocale().
  5. Выводим сообщение с просьбой ввести количество чисел в массиве и считываем это количество в переменную n с помощью функции scanf().
  6. Выводим сообщение с просьбой ввести последовательность из n натуральных чисел и считываем эти числа в массив a с помощью функции scanf().
  7. Вызываем функцию Obrabotka(a,n) и передаем ей в качестве аргументов массив a и его размер n.
  8. Выводим содержимое массива a с помощью цикла for и функции printf().
  9. В функции Obrabotka() объявляем переменные s, m, l, p, k типа int.
  10. В цикле for перебираем все элементы массива x[].
  11. Внутри цикла определяем переменную p=0 и инициализируем переменные m=1 и k=0.
  12. Начинаем цикл while(x[s]), который выполняется до тех пор, пока x[s] не станет равным нулю.
  13. Внутри цикла while определяем переменную l=(x[s]%10) и проверяем условие (l==0||l!=0).
  14. Если условие выполняется, то мы добавляем к переменной p значение m*(9-l) и умножаем m на 10.
  15. После каждой итерации цикла while увеличиваем значение переменной k на 1.
  16. После окончания цикла while присваиваем значение переменной x[s] значение переменной p.
  17. По завершении цикла for возвращаем значение переменной k.
  18. В функции main() возвращаем 0, что означает успешный конец работы программы.
  19. Запускаем программу.
  20. Вводим последовательность из 5 натуральных чисел: 12345 и нажимаем Enter.
  21. Программа выводит на экран массив a: 1 2 3 4 5.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы