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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.78
Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
#1

Аргумент типа int не совместим с параметрами типа int* - C++

05.01.2013, 21:01. Просмотров 3880. Ответов 22
Метки нет (Все метки)

помогите, ошибка в программе "аргумент типа int не совместим с параметрами типа int*"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define k 5
 
int sum(int *a, int n)
{
 if (n==1) return a[0];
 else return a[n-1]+sum(a[0],n-1);
}
 
void main()
{
 int x[k],summa,i;
 for(i=0;i<k;i++)
     scanf_s("%i",& x[k]);
 for(int i=0;i<k;i++)
  printf("%i ",x[i]);
 summa=sum(x[0],k);
 printf("\n%i",summa);
}
при выполнении появляется
Аргумент типа int не совместим с параметрами типа int*
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2013, 21:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Аргумент типа int не совместим с параметрами типа int* (C++):

Напишите перегруженную функцию power (), которая принимает два целочисленных параметра типа int и возвращает целочисленное значение типа int - C++
Операции над целыми числами осуществляются быстрее, чем над числами с плавающей точкой. Напишите перегруженную функцию power (), ...

Передать массив элементов(типа int) объекта, в функцию из массивов(типа int) - C++
Представьте такую ситуацию. Есть у вас массив чисел: Mass И вы хотите передать его в функцию. Я делаю это так: //объявим ф-ю: ...

Аргумент типа "int **" несовместим с параметром типа "int (*)[26]" - C++
Здравствуйте. Я не могу передать динамический двумерный массив в функцию. Как это можно сделать? И как можно нормально объявить массив ?...

Аргумент типа WCHAR* не совместим с параметром типа const char* - C++
Как исправить косяк? VS12 ругаетсЯ #include &lt;windows.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include...

Написать функцию типа Beaty(int iA, int iB, int *pc) - C++
Задание: Написать функцию типа Beaty(int iA, int iB, int *pc); для выражения (iA+iB)/(iA*iB). Помогите решить!

Значение типа "int*" нельзя присвоить сущности типа int - C++
#include &lt;iostream&gt; using namespace std; int sort(int k, int p, int b, int n) { int min = 0; // для вставки задач int sum;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13154 / 7417 / 831
Регистрация: 27.09.2012
Сообщений: 18,254
Записей в блоге: 3
Завершенные тесты: 1
05.01.2013, 21:03 #2
C++
1
int sum(int *a, int n)
C++
1
sum(x[0],k);
передаете int, а функция принимает int*
Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
05.01.2013, 21:15  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
int sum(int *a, int n)
C++
1
sum(x[0],k);
передаете int, а функция принимает int*
убрав в рукурсивной функции *, начинает ругаться на n и 0. вот в этом месте
C++
1
2
if (n==1) return a[0];
 else return a[n-1]+sum(a[0],n-1);
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
05.01.2013, 21:20 #4
Alkcatraz какое условие задачи?
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
05.01.2013, 21:22 #5
Цитата Сообщение от Alkcatraz Посмотреть сообщение
убрав в рукурсивной функции *, начинает ругаться на n и 0.
Вот как раз * не надо было трогать.
Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
05.01.2013, 21:46  [ТС] #6
Цитата Сообщение от David Sylva Посмотреть сообщение
Alkcatraz какое условие задачи?
с помощью рекурсии посчитать сумму элементов массива

Добавлено через 13 минут
Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
Вот как раз * не надо было трогать.
а что трогать нужно?
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
05.01.2013, 21:51 #7
Цитата Сообщение от Alkcatraz Посмотреть сообщение
summa=sum(x[0],k);
C++
1
summa=sum(x,k);
Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
05.01.2013, 22:00  [ТС] #8
Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
C++
1
summa=sum(x,k);
исправил, но при выполнении появляется
Аргумент типа int не совместим с параметрами типа int*
Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
05.01.2013, 22:02  [ТС] #9
ошибок в коде нету
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
05.01.2013, 22:03 #10
здесь тоже исправить (9 строчка):
Цитата Сообщение от Alkcatraz Посмотреть сообщение
else return a[n-1]+sum(a[0],n-1);
C++
1
else return a[n-1]+sum(a,n-1);
Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
05.01.2013, 22:05  [ТС] #11
Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
здесь тоже исправить (9 строчка):

C++
1
else return a[n-1]+sum(a,n-1);
я исправил и там и там.....и получилось то что на скрине
Psilon
Master of Orion
Эксперт .NET
5888 / 4785 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 5
Завершенные тесты: 4
05.01.2013, 22:06 #12
C
1
2
3
4
5
6
int sum(int *a, int n)
{
   if (n == 0) 
      return 0;
   return a[n-1]+sum(a,n-1);
}
Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
05.01.2013, 22:11  [ТС] #13
Цитата Сообщение от Psilon Посмотреть сообщение
C
1
2
3
4
5
6
int sum(int *a, int n)
{
   if (n == 0) 
      return 0;
   return a[n-1]+sum(a,n-1);
}
всё равно таже ошибка при выполнении
Psilon
Master of Orion
Эксперт .NET
5888 / 4785 / 633
Регистрация: 10.07.2011
Сообщений: 14,405
Записей в блоге: 5
Завершенные тесты: 4
05.01.2013, 22:12 #14
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#define k 5
 
int sum(int *a, int n)
{
   if (n == 0)
      return 0;
   return a[n-1]+sum(a,n-1);
}
 
void main()
{
 int x[k],summa,i;
 for(i=0;i<k;i++)
    scanf("%i",x+i);
 for(i=0;i<k;i++)
    printf("%i ", x[i]);
 summa=sum(x,k);
 printf("\n%i",summa);
}
Alkcatraz
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 63
05.01.2013, 22:19  [ТС] #15
Цитата Сообщение от Psilon Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#define k 5
 
int sum(int *a, int n)
{
   if (n == 0)
      return 0;
   return a[n-1]+sum(a,n-1);
}
 
void main()
{
 int x[k],summa,i;
 for(i=0;i<k;i++)
    scanf("%i",x+i);
 for(i=0;i<k;i++)
    printf("%i ", x[i]);
 summa=sum(x,k);
 printf("\n%i",summa);
}
попрежнему таже ошибка при выполнении
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2013, 22:19
Привет! Вот еще темы с ответами:

МАССИВЫ: динамические мас.значение типа "int *" нельзя присвоить сущности типа "int" - C++
МАССИВЫ: динамические массива ОШИБКА:значение типа &quot;int *&quot; нельзя присвоить сущности типа &quot;int&quot; #include &lt;iostream&gt; using...

Аргумент типа char** не совместим с параметром типа const char* - C++
Программа должна позволять заносить в структуру данные и выводить на экран информацию о поездах, следующих до определенной станции: ...

Поместить двоичный код, в веденной строке, в переменную типа int и unsigned int. - C++
Пользователь вводит двоичную строку (32 символа). Поместить двоичный код, в веденной строке, в переменную типа int и unsigned int.

в Visual Studio пишет: отсутствует спецификатор типа-предполагается int.C++ не поддерживает int по умолчанию - C++
#include &quot;stdio.h&quot; int factorial(short n); main() { float s, x; short i; int j; scanf(&quot;%f&quot;, &amp;x); s =...


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

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

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