c语言,要怎么改下面的错误cannot convert parameter 2 from 'char' to 'const char *'

voiddel_student(structstudent_liststu[],charname){inti,j,h;charnames;printf("请输入要删除的学... void del_student(struct student_list stu[],char name)
{
int i,j,h;
char names;

printf("请输入要删除的学生的姓名:");

scanf("%d",&names);
for(i=0;i<max;i++){
if (strcmp(stu[i].name,names)==0)break;
else printf("\n您输入的姓名不存在,请重试!\n");
}
printf("你要删除的学生信息为:\n1.删除2.取消");
printf("%d%s%s%d%d%s%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].grade,stu[i].department,stu[i].specialty);
scanf("%d",&h);
if(h==2) ;
if(h==1){
for(j=i;j<max;j++){
stu[j]=stu[j+1];
printf("删除成功!\n");
}
max--;
}
}
展开
 我来答
风若远去何人留
2018-01-09 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450110
专业C/C++软件开发

向TA提问 私信TA
展开全部

代码结构就有问题.

1 如果names在函数内输入, 那么参数names有什么用处

2 stu结构体中name应该是字符串吧, 那么 不管是name还是names 都应该是字符串.

3 输入char型怎么可以用%d

大致改了一下 你看看吧

void del_student(struct student_list stu[])
{
int i,j,h;
char names[100];

printf("请输入要删除的学生的姓名:"); 

scanf("%s",names);
for(i=0;i<max;i++){
if (strcmp(stu[i].name,names)==0)break;
}
if(i==max)
    printf("\n您输入的姓名不存在,请重试!\n");
else
{
    printf("你要删除的学生信息为:\n1.删除2.取消");
    printf("%d %s %s %d %d %s %s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].grade,stu[i].department,stu[i].specialty); 
    scanf("%d",&h);
    
    if(h==1){
        for(j=i;j<max;j++){
        stu[j]=stu[j+1];
        printf("删除成功!\n");
        }
        max--;
    }
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式