作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
for(a=0;a<99;a++){
reg:
system("cls");
printf("\t\t\t~~REGISTER AN ACCOUNT~~\n\n");
printf("\tDesired Username: ");
scanf("%s", &user[a].user);
for(b=0;b<=a-1;b++){
if(strcmp(user[a].user,user[b].user)==0){
printf("USERNAME IS ALREADY TAKEN");
system("pause");
goto reg;
}
}
printf("\tDesired Password: ");
scanf("%s", &user[a].pass);
printf("\tPersonal/Company Name: ");
scanf("%s", &user[a].name);
printf("\tAddress/Location: ");
scanf("%s", &user[a].address);
printf("\tEmail-Address: ");
scanf("%s", &user[a].email);
printf("\tContact Number: 09");
scanf("%d", &user[a].contact);
break;
}
每当我将 break
放在最后时,系统都无法识别用户名是否被占用,但是当删除“break”时,它可以识别它..idk这是怎么发生的..请帮忙..
最佳答案
我认为问题出在你的for循环上:
第一次迭代:
a = 0;
for(b=0;b<=a-1;b++)
这不是真的
如 b<=a-1
等于 b<=-1
这是不正确的。因此它不会进入b的for循环。它将进入中断并退出
相同的过程将重复直到 a>=2
,
当你没有break时,b等待b>=2
并开始比较。这就是您看到比较结果的原因。
一个简单的检查是在每次迭代时打印出 a 和 b 的值。
关于C 语言>菜鸟<我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49554984/
我是一名优秀的程序员,十分优秀!