cpp(12) : error C2664: 'scanf' : cannot convert parameter 1 from 'const int' to 'const char *'为什么

#include<stdio.h>
#define N 2
void main()
{struct employee
{int num;
int swage;
char name[20];

}emp[N];
int i;
int sum=0;
float aver=0;
for(i=0;i<N;i++)
{printf("num:");
scanf("%d",&emp[i].num);
printf("swage:");
scanf("%d",&emp[i].swage);
printf("name:");
gets(emp[i].name);
}
int max;
max=emp[0].swage;
for(i=0;i<N;i++)
if(emp[i].swage>max) max=emp[i].swage;
printf("%s\t%d\t%s\t",emp[i].name,emp[i].swage);}



&(emp[i].num)试一下

在Dev-C++里面,只报一个main函数必须为int类型的错误,改为int main就可以了。另外如果你是要求输出最大的swage对应的结构信息,可能有一些逻辑错误,
我修改了一下,如下:


#include<stdio.h>
#define N 2
int main()
{
    struct employee
    {    int num;
        int swage;
        char name[20];
    }
    emp[N];
    
    int i;
    int sum=0;
    float aver=0;
    
    for(i=0;i<N;i++)
    {
        printf("num:");
        scanf("%d",&emp[i].num);
        
        printf("swage:");
        scanf("%d",&emp[i].swage);
        
        while(getchar()!='\n')
            continue;
            
        printf("name:");
        gets(emp[i].name);
    
    }
    
    int max;
    max=emp[0].swage;
    int index;
    
    for(i=0;i<N;i++)
        if(emp[i].swage>max) {
            max=emp[i].swage;
            index = i;    
        }
        
            
    printf("%s\t%d\t%d\t",emp[index].name,emp[index].num,emp[index].swage);
    
    return 0;

}