二维数组问题,请求解答

想用二维数组做多用户的登陆注册,我想用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;
    }
}

如果我的回答解决了您的问题,请采纳我的回答