青海大学mooc测验和作业

内容发布更新时间 : 2024/5/13 10:12:34星期一 下面是文章的全部内容请认真阅读。

int w[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; int n,i,j,sum,y,f=0; scanf(\

getchar();

for(i=0;i

gets(s[i]);

for(i=0;i

{ strcpy(a,s[i]);

for(j=16;j>7;j--)

s[i][j]=s[i][j-2]; t[0]=a[12];t[1]=a[13]; t[2]=a[14];t[3]='\\0';

if(strcmp(t,\

strcmp(t,\

s[i][7]='8'; else s[i][7]='9'; s[i][6]='1'; sum=0;

for(j=0;j<17;j++)

sum=sum+w[j]*(int)(s[i][j]-48); y=sum; switch(y)

{ case 0: s[i][17]='1';break; case 1: s[i][17]='0';break; case 2: s[i][17]='X';break; case 3: s[i][17]='9';break; case 4: s[i][17]='8';break; case 5: s[i][17]='7';break; case 6: s[i][17]='6';break; case 7: s[i][17]='5';break; case 8: s[i][17]='4';break; case 9: s[i][17]='3';break; case 10: s[i][17]='2';break; }

s[i][18]='\\0'; puts(s[i]); }

else if(strlen(s[i])==18)

{

sum=0;

for(j=0;j<17;j++)

sum=sum+w[j]*(int)(s[i][j]-48);

y=sum;

switch(y)

{ case 0: last='1';break; case 1: last='0';break; case 2: last='X';break; case 3: last='9';break; case 4: last='8';break; case 5: last='7';break; case 6: last='6';break; case 7: last='5';break; case 8: last='4';break; case 9: last='3';break; case 10: last='2';break; }

if(last==s[i][17]) printf(\ else printf(\ }

else printf(\

} return 0; }

4安全的密码(10分)

题目内容:

随着电子设备的广泛运用,密码也渐渐融入每个人的生活。保护好密码,不仅关系到个人隐私,更关系到个人的财产和安全。一个安全的密码,最好由大小写字母、数字或符号组成。包含越多种类的字符,其安全性就越高。同时密码还需要有一定的长度,通常至少要由六个以上的字符组成。

并不是每个人都喜欢这样复杂的密码,很多人在设置密码的时候,喜欢使用自己的名字或者生日,但这是很大的安全隐患。

任务

林晓炜正在设计一个网络交易系统,为了保证用户的密码安全,他需要一个程序,判断用户自己设置的密码是否安全,如果不安全,则给出提示。现在他向你求助,请你帮忙设计一个程序来解决这个问题。 应当按照以下的规则来判断密码是否安全: 1. 如果密码长度小于 6 位,则不安全 2. 如果组成密码的字符只有一类,则不安全 3. 如果组成密码的字符有两类,则为中度安全 4. 如果组成密码的字符有三类或以上,则为安全

通常,可以认为数字、大写字母、小写字母和其它符号为四类不同的字符。 输入格式:

输入的第一行是一个整数 N,表明后面有多少组密码。随后的 N 行输入包括 N 个密码,每个密码的长度均小于 20 个字符。 输出格式:

针对每一个密码判断并输出它是否安全。对于不安全的密码输出 \,对于中度安全的密码输出 \,对于安全的密码输出 \输入样例:

4 1234 abcdef ABC123 1#c3Gh[回车]

输出样例: Not Safe Not Safe Medium Safe[回车]

源程序:

#include #define N 100 int main() {

char mm[N][20]; int n,i,j,k,a[4]={0}; scanf(\

getchar(); for(i=0;i

if(strlen(mm[i])>=20) mm[i][19]='\\0'; }

for(i=0;i

{ }

if(strlen(mm[i])<6) printf(\ else if(strlen(mm[i])>=6) { } } return 0;

for(j=0;j

if(mm[i][j]>='0' && mm[i][j]<='9') a[0]++; else if(mm[i][j]>='A' && mm[i][j]<='Z') a[1]++; else if(mm[i][j]>='a' && mm[i][j]<='z') a[2]++; else a[3]++;

k=0;

for(j=0;j<4;j++)

if(a[j]!=0) { k++;a[j]=0;}

if(k==1) printf(\ if(k==2) printf(\ if(k>=3) printf(\

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi