Expression must have a pointer to object type in C

anansharm

I am trying to use pointers in functions and arrays and when I call the report function in main, I keep getting an error Expression must have a pointer to object type. I have tried everything. Nothing seem to be working. Can anyone please let me know what I am doing wrong?

Please note: without the report function, if I call the other functions separately in main it works. It's not working only with the report function.

#include <stdio.h>
#include <conio.h>

void print(int *list, int row_count, int column_count);
void rowaverage(int *list, int row_count, int column_count);
void allaverage(int *list, int row_count, int column_count);
void largest(int *list, int row_count, int column_count);
void report(int *list, int row_count, int column_count);

int main()
{
  int i = 1, row, column;
  int list[3][5];
  printf("Enter 3 sets of 5 integers::\n");
  for (row = 0; row < 3; row++)
  {
    printf("Elements in the %d set are ::\n", row);
    for (column = 0; column < 5; column++)
    {
      printf("Element No. %d is ", i++);
      scanf("%d", &list[row][column]);
    }
    printf("\n");
    i = 1;
  }
  printf("The elements in array are:\n");

  report(&list[0][0], row, column);

  getch();
  return 0;
}

void print(int *list, int row_count, int column_count)
{
  int column, row;
  for (row = 0; row < row_count; row++)
  {
    for (column = 0; column < column_count; column++)
    {
      printf("%8d", *(list + row * column_count + column));
    }
    printf("\n");
  }
}

void rowaverage(int *list, int row_count, int column_count)
{
  int column, row;
  for (row = 0; row < row_count; row++)
  {
    float sum = 0, count = 0;
    for (column = 0; column < column_count; column++)
    {
      sum += *(list + row * column_count + column);
      count++;
    }
    printf("Average of row %d is %.2f\n", row, (sum / count));
  }
}

void allaverage(int *list, int row_count, int column_count)
{
  int column, row;
  float sum = 0, count = 0;
  for (row = 0; row < row_count; row++)
  {
    for (column = 0; column < column_count; column++)
    {
      sum += *(list + row * column_count + column);
      count++;
    }
  }
  printf("Average of all elements in array is %.2f\n", (sum / count));
}

void largest(int *list, int row_count, int column_count)
{
  int column = 0, row = 0;
  int largest = *(list + row * column_count + column);
  for (row = 0; row < row_count; row++)
  {
    for (column = 0; column < column_count; column++)
    {
      if (largest < *(list + row * column_count + column))
      {
        largest = *(list + row * column_count + column);
      }
    }
  }
  printf("The largest number in the array is %d\n", largest);
}

void report(int *list, int row_count, int column_count)
{
  int row = 0, column = 0;
  print(list[0][0], row, column);
  printf("\n");
  rowaverage(list[0][0], row, column);
  printf("\n");
  allaverage(list[0][0], row, column);
  printf("\n");
  largest(list[0][0], row, column);
}
tyilmaz

In report function remove that line and see below report function:

int row = 0, column = 0;

In functions, use list as

int list[][5]

Call list as

list

not as

list[0][0]

Here is the complete code:

#include <stdio.h>
#include <stdlib.h>

void print(int list[][5], int row_count, int column_count)
{
    int column, row;

    for (row = 0; row < row_count; row++) {
        for (column = 0; column < column_count; column++)
            printf("%8d", list[row][column]);
        printf("\n");
    }
}

void rowaverage(int list[][5], int row_count, int column_count)
{
    int column, row;

    for (row = 0; row < row_count; row++) {
        float sum = 0, count = 0;
        for (column = 0; column < column_count; column++) {
            sum += list[row][column];
            count++;
        }
        printf("Average of row %d is %.2f\n", row, (sum / count));
    }
}

void allaverage(int list[][5], int row_count, int column_count)
{
    int column, row;
    float sum = 0, count = 0;

    for (row = 0; row < row_count; row++) {
        for (column = 0; column < column_count; column++) {
            sum += list[row][column];
            count++;
        }
    }

    printf("Average of all elements in array is %.2f\n", (sum / count));
}

void largest(int list[][5], int row_count, int column_count)
{
    int column = 0, row = 0;
    int largest = list[0][0];

    for (row = 0; row < row_count; row++) {
        for (column = 0; column < column_count; column++) {
            if (largest < list[row][column]) {
                largest = list[row][column];
            }
        }
    }

    printf("The largest number in the array is %d\n", largest);
}

void report(int list[][5], int row_count, int column_count)
{
    print(list, row_count, column_count);
    printf("\n");
    rowaverage(list, row_count, column_count);
    printf("\n");
    allaverage(list, row_count, column_count);
    printf("\n");
    largest(list, row_count, column_count);
}


int main()
{
    int i = 1, row, column;
    int list[3][5];

    printf("Enter 3 sets of 5 integers::\n");

    for (row = 0; row < 3; row++) {
        printf("Elements in the %d set are ::\n", row);
        for (column = 0; column < 5; column++) {
            printf("Element No. %d is ", i++);
            scanf("%d", &list[row][column]);
        }
        printf("\n");
        i = 1;
    }

    printf("The elements in array are:\n");

    report(list, row, column);

    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

error: expression must have integral or enum type

来自分类Dev

C , Error: Expression must be a modifiable lvalue

来自分类Dev

如何在 type_traits 中使用 C++11 std::is_member_object_pointer?

来自分类Dev

How is type safety possible for an object pointer of id?

来自分类Dev

Set a python variable to a C++ object pointer with boost-python

来自分类Dev

c# convert from object to model type

来自分类Dev

In Objective-c, is a Block an object type?

来自分类Dev

C++ Shared pointers. How can I change the underlying object's pointer for all copies?

来自分类Dev

C - discard pointer parameter

来自分类Dev

C ++-“!pointer”和“ pointer == nullptr”之间的区别?

来自分类Dev

C#通过参数中的Expression<Func<TEntity,object>>反射获取方法

来自分类Dev

C++:When creating a new objects inside a function and returning it as result, must I use the new operator to create the object?

来自分类Dev

structures and pointers error: dereferencing pointer to incomplete type

来自分类Dev

How to initialize a pointer using an object with 0 value

来自分类Dev

How is this C expression evaluated

来自分类Dev

How to accept after at sign must have letter with below regex

来自分类Dev

c ++,cpplint问题中if(pointer)与if(pointer!= NULL)之间的区别

来自分类Dev

c++ - converting a base class pointer to a derived class pointer

来自分类Dev

什么时候在C ++中使用Pointer-to-Pointer?

来自分类Dev

Objective-C - Is the Pointer to a Class different from a pointer to another Class?

来自分类Dev

Static pointer default value in c/c++

来自分类Dev

Is it alright to have a field type of ObjectId in a mongoose schema

来自分类Dev

将Expression <Func <T,TProperty >>转换为Expression <Func <object,object >>,反之亦然

来自分类Dev

无法从 `Expression<Func<T1, T2>>` 转换为 `Expression<Func<object, object>>`

来自分类Dev

使用哪个好:Object.GetType()== typeof(Type)或Object is Type?

来自分类Dev

为什么type(object)返回<class'type'>而不是<class'object'>?

来自分类Dev

How to check type of object in Handlebars?

来自分类Dev

How to rewrite this function into a pointer in c++?

来自分类Dev

带有shared_pointer的C ++ Openmp

Related 相关文章

  1. 1

    error: expression must have integral or enum type

  2. 2

    C , Error: Expression must be a modifiable lvalue

  3. 3

    如何在 type_traits 中使用 C++11 std::is_member_object_pointer?

  4. 4

    How is type safety possible for an object pointer of id?

  5. 5

    Set a python variable to a C++ object pointer with boost-python

  6. 6

    c# convert from object to model type

  7. 7

    In Objective-c, is a Block an object type?

  8. 8

    C++ Shared pointers. How can I change the underlying object's pointer for all copies?

  9. 9

    C - discard pointer parameter

  10. 10

    C ++-“!pointer”和“ pointer == nullptr”之间的区别?

  11. 11

    C#通过参数中的Expression<Func<TEntity,object>>反射获取方法

  12. 12

    C++:When creating a new objects inside a function and returning it as result, must I use the new operator to create the object?

  13. 13

    structures and pointers error: dereferencing pointer to incomplete type

  14. 14

    How to initialize a pointer using an object with 0 value

  15. 15

    How is this C expression evaluated

  16. 16

    How to accept after at sign must have letter with below regex

  17. 17

    c ++,cpplint问题中if(pointer)与if(pointer!= NULL)之间的区别

  18. 18

    c++ - converting a base class pointer to a derived class pointer

  19. 19

    什么时候在C ++中使用Pointer-to-Pointer?

  20. 20

    Objective-C - Is the Pointer to a Class different from a pointer to another Class?

  21. 21

    Static pointer default value in c/c++

  22. 22

    Is it alright to have a field type of ObjectId in a mongoose schema

  23. 23

    将Expression <Func <T,TProperty >>转换为Expression <Func <object,object >>,反之亦然

  24. 24

    无法从 `Expression<Func<T1, T2>>` 转换为 `Expression<Func<object, object>>`

  25. 25

    使用哪个好:Object.GetType()== typeof(Type)或Object is Type?

  26. 26

    为什么type(object)返回<class'type'>而不是<class'object'>?

  27. 27

    How to check type of object in Handlebars?

  28. 28

    How to rewrite this function into a pointer in c++?

  29. 29

    带有shared_pointer的C ++ Openmp

热门标签

归档