caspar1 发表于 2022-5-4 10:26:24

作業問題

本帖最后由 caspar1 于 2022-5-4 10:28 编辑

試撰寫一函式password() 檢視密碼是否有效。
假設密碼的規則如下:
(1) 必須要有八個字元
(2) 必須只包含英文字母和數字
(3) 必須包含至少有兩個數字◦
請以一程式呼叫此函式,若密碼符合上述規則,則顯示「有效密碼」,否則顯示「無效密碼」。

我不太了解如何將三個條件放入同一個回圈去執行,必須包含八個字元是要如何去打程式

jhq999 发表于 2022-5-4 11:34:48

本帖最后由 jhq999 于 2022-5-4 22:47 编辑

char str={0};
scanf("%s",str);
int i=0,numcount=0,other=0;
while(str)
{
        if(str>='0'&&str<='9')numcount++;
        else if((str>='a'&&str<='z')||(str>='A'&&str<='Z'));
        else
        {
                other=1;
                break;
        }
        i++;
}
if(other||(numcount<2)||(i<8))printf("無效密碼");//这个other也可去掉
else
        printf("有效密碼");

caspar1 发表于 2022-5-5 17:25:12

jhq999 发表于 2022-5-4 11:34


小弟想問一下,請問other的用途是什麼,我不太理解它放在裡面的用途

jhq999 发表于 2022-5-6 06:42:59

本帖最后由 jhq999 于 2022-5-6 06:46 编辑

caspar1 发表于 2022-5-5 17:25
小弟想問一下,請問other的用途是什麼,我不太理解它放在裡面的用途

看有没有除了数字和字母的之外的其他字符,有就让赋值other为1,退出循环,后面判断时other为真时不符合规则
至于注释里为什么可以去掉,如果不需要不符合规则的原因,可以用i<8包含在里面,因为只要用break跳出循环,i肯定小于8

caspar1 发表于 2022-5-10 11:28:26

jhq999 发表于 2022-5-6 06:42
看有没有除了数字和字母的之外的其他字符,有就让赋值other为1,退出循环,后面判断时other为真时不符 ...

了解了,謝謝哥
页: [1]
查看完整版本: 作業問題