void deletelist(sqlist *l)
{
int j,z,s=0;
stu m;
char n[10],y;
printf("请输入要删除的学生姓名:");
scanf("%s",n);
for(z=0;z<l->length;z++)
{
m=l->data[z];
if(strcmp(m.name,n)==0)
{
s=1;
break;
}
}
if(s==0)
{
printf("未找到该学生\n",n);
system("pause");
system("cls");
return;
}
else
{
printf("姓名为(%s)的学生信息为:\n学号:%s\t性别:%s\t成绩:%d\n",n,m.num,m.sex,m.score);
printf("确认删除?(Y/N)\n");
scanf(" %c",&y);
if(y=='y'||y=='Y')
{
for(j=z;j<l->length;j++)
l->data[j]=l->data[j+1];
l->length--;
printf("删除成功\n");
return;
}
else
{
printf("删除取消\n");
return;
}
}
}
你说的是哪一个else
这个函数没什么问题,能正常运行,else后面不执行是因为没找到相关的记录?
void deletelist(sqlist* l)
{
int j, z, s = 0;
stu m;
char n[10], y;
printf("请输入要删除的学生姓名:");
scanf("%s", n);
for (z = 0; z < l->length; z++)
{
m = l->data[z];
if (strcmp(m.name, n) == 0)
{
s = 1;
break;
}
}
if (s == 0)
{
printf("未找到该学生\n", n);
system("pause");
system("cls");
return;
}
else
{
printf("姓名为(%s)的学生信息为:\n学号:%s\t性别:%s\t成绩:%d\n", m.name, m.num, m.sex, m.score);
printf("确认删除?(Y/N)\n");
scanf(" %c", &y);
if (y == 'y' || y == 'Y')
{
for (j = z; j < l->length; j++)
l->data[j] = l->data[j + 1];
l->length--;
printf("删除成功\n");
return;
}
else
{
printf("删除取消\n");
return;
}
}
}