error C2109: 下标要求数组或指针类型

img

error C2109: 下标要求数组或指针类型,在scanf这行出现:表达式必须包含指向对象的指针类型,但它具有类型“int”
如何解决

这样定义变量试试

int str[],a,n;

然后 scanf 里面要这样

scanf("%d",&str[n]);

有帮助请采纳

#include <stdio.h>
void lookup(int* str, int* a, int n)
{
a = str;
for (n = 0; n < 10; n++)
{
if (*str < *a)
{
*a = *str;
str++;
}
}
}
void main()
{
int str,a,n;
for (n = 0; n < 10; n++)
{
scanf("%d", str[n]);
}
lookup(str,&a,n);
printf("%d", a);
}

你的lookup要实现什么功能?

供参考:

#include <stdio.h>
#define N 50       //修改
void lookup(int* str, int* a, int n)
{
    *a = *str;   //修改
    for (n = 0; n < 10; n++)
    {
        if (*str < *a)
        {
            *a = *str;
            str++;
        }
    }
}
void main()
{
    int str[N], a, n;  //修改
    for (n = 0; n < 10; n++)
    {
        scanf("%d", &str[n]);  //scanf("%d", str[n]);
    }
    lookup(str, &a, 10);   //lookup(str, &a, n);
    printf("%d", a);
}