想用二维数组做多用户的登陆注册,我想用1000x11的二维数组做用户电话号码的记录,但是不知道怎么一次性将11位号码加入数组。而且也没办法检测新加入的11位号码是否在数组中有相同的。
也可能我这个想法有点异想天开,本身基础也不是很好,就像来这问下
最好还是就用一维数组吧,unsigned long long
型的,可以用11位十进制数字。
#define dial unsigned long long
dial nums[1000];
int i;
// 加入号码
void add(dial phone_number){
nums[i++]=phone_number;
}
// 查找是否已加入
int is_added(dial phone_number){
for(int j=0;j<i;j++)
if(nums[j]==phone_number)
return 1;
return 0;
}
将电话号码当作字符串
char user[1000][12]就行了
判断号码是否相同,用strcmp(user[0],user[1])==0来判断
for(int i=0;i<1000;i++)
scanf("%s",user[i]);
这样循环输入1000个联系电话号码
以下答案引用自GPT-3大模型,请合理使用:
解决方案:
首先,建立一个1000x11的二维数组,它将存储所有用户的11位号码:
int[][] userTelNumber = new int[1000][11];
然后,循环读取每个用户的11位号码,并将其存储到二维数组中:
for (int i = 0; i < userTelNumber.length; i++) {
String telNumber = sc.nextLine();
char[] telChars = telNumber.toCharArray();
for (int j = 0; j < telChars.length; j++) {
userTelNumber[i][j] = telChars[j] - '0';
}
}
最后,检查新加入的号码是否在数组中有相同的:
boolean hasSameNumber = false;
String newTelNumber = sc.nextLine();
char[] newTelChars = newTelNumber.toCharArray();
for (int i = 0; i < userTelNumber.length; i++) {
boolean isSame = true;
for (int j = 0; j < newTelChars.length; j++) {
if (userTelNumber[i][j] != newTelChars[j] - '0') {
isSame = false;
break;
}
}
if (isSame) {
hasSameNumber = true;
break;
}
}
如果我的回答解决了您的问题,请采纳我的回答