Что такое ошибка в этой программе я использовал VOID указатель и функцию для поиска наибольшего из элементов массива
#include <stdio.h> int compare(void *p,int a[],int n); int main() { void *p; int n,i,j,c; scanf("%d",&n); int a[n]; for(i=0;i<n;i++) { scanf("%d",&a[i]); } compare(&p,a,n); for(i=0;i<n;i++) { printf("%d",*(int*)p+i); } return 0; } int compare(void *p,int a[],int n) { int i,j; p = a; int f = 0; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(*(int*)p+i > *(int*)p+j) { f = 1; } } } if(f==1) { for(i=0;i<n;i++) { return *(int*)p+i; } } }
Что я уже пробовал:
Я попытался получить какой-то вывод, но он не возвращает правильное значение.
ПОМОГИ МНЕ С ЭТИМ.
Richard MacCutchan
Не используйте void*
, используйте правильный тип, который в вашем случае является int*
.
KarstenK
ваш p не имеет правильного значения, когда вызывается compare? Остальные абсолютно правы в остальном.