gpt4 book ai didi

C 语言>菜鸟<我做错了什么?

转载 作者:行者123 更新时间:2023-11-30 21:36:31 26 4
gpt4 key购买 nike

 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这是怎么发生的..请帮忙..

PS。抱歉,如果这对您来说看起来或听起来真的很愚蠢,我刚刚开始学习编程(我正在尝试为学校项目制作一个知识非常有限的注册程序)

最佳答案

我认为问题出在你的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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com