当日学习内容思维导图
练习1:提示并输入一个字符串,统计该字符串中的字母、数字、空格以及其他字符的个数
1 #include<stdio.h>
2 #include<string.h>
3 int main(int argc, const char *argv[])
4 {
5 char str[100]="";
6 int i,space=0,alphabet=0,num=0,other=0; //alphabet表示字符
7 gets(str);
8 for(i=0;i<strlen(str);i++)
9 {
10 if(str[i]>='a'&&str[i]<='z' || str[i]>='A'&&str[i]<='Z')
11 {
12 alphabet++; //字母个数
13 }
14 else if(str[i]>='0' && str[i]<='9')
15 {
16 num++; //数字个数
17 }
18 else if(str[i]==' ')
19 {
20 space++; //空格个数
21 }
22 else
23 {
24 other++; //其他个数
25 }
26 }
27 printf("该字符串的字母为%d个,数字为%d个,空格为%d个,其他字符为%d个\n",alphabet,num,space,other);
28 return 0;
29
练习2.提示并输入一个字符串,求出该字符串中所有数字的总和
1 #include<stdio.h>
2 #include<string.h>
3 int main(int argc, const char *argv[])
4 {
5 char str[100]=" ";
6 printf("请输入一个字符串:");
7 gets(str);
8 int i=0,sum=0;
9 for(i=0;i<strlen(str);i++)
10 {
11 if(str[i]>='0' && str[i]<='9')
12 {
13
14 sum+=str[i]-'0';
15 }
16
17 }
18 printf("该字符串中所有数字的总和为:%d\n",sum);
19 return 0;
20 }
练习3.定义一个4*3的二位整型数组,完成对二维数组的输入、输出。
并将该二维数组中每一行的最值放入到一个一维数组中,并对该一维数组进行升序排序后输出
1 #include<stdio.h>
2 #include<string.h>
3 #define M 4
4 #define N 3
5 int main(int argc, const char *argv[])
6 {
7 int arr[M][N]={0};
8 int MAX[M];
9 int i,j,temp,max;
10 for(i=0;i<M;i++)
11 {
12 for(j=0;j<N;j++)
13 {
14 printf("请输入第%d行,第%d列:",i+1,j+1);
15 scanf("%d",&arr[i][j]);
16 }
17 } //循环输入成绩
18 for(i=0;i<M;i++)
19 {
20 max=arr[i][0];
21 for(j=1;j<N;j++)
22 {
23 if(max<arr[i][j])
24 {
25 temp=max;
26 max=arr[i][j];
27 arr[i][j]=temp;
28 }
29 }
30 MAX[i]=max;
31
32 } //找出每一行中的最大值
33 /* for(i=0;i<M;i++)
34 {
35 printf("%d\t",MAX[i]);
36 }
37 putchar(10); */ //验证是否输出每一行的最大值
38 for(i=0;i<M;i++)
39 {
40 for(j=i+1;j<M;j++)
41 {
42 if(MAX[i]>MAX[j])
43 {
44 temp=MAX[i];
45 MAX[i]=MAX[j];
46 MAX[j]=temp;
47 }
48 }
49 } //进行升序排序
50 for(i=0;i<M;i++)
51 {
52 printf("%d\t",MAX[i]);
53 }
54 putchar(10);
55
56 return 0;
57 }
练习4、提示并输入两个一维整形数组,求这两个数组的交集
1 #include<stdio.h>
2 #include<string.h>
3 int main(int argc, const char *argv[])
4 {
5 int num1[4]={0};
6 int num2[4]={0};
7 int i=0,j=0;
8 for(i=0;i<4;i++)
9 {
10 printf("请输入num1数组第%d个数:",i+1);
11 scanf("%d",&num1[i]);
12 }
13 for(i=0;i<4;i++)
14 {
15 printf("请输入num2数组第%d个数:",i+1);
16 scanf("%d",&num2[i]);
17 }
18 for(i=0;i<4;i++)
19 {
20 for(j=0;j<4;j++)
21 {
22 if(num1[i]==num2[j])
23 {
24 printf("%d\t",num1[i]);
25 }
26 }
27 }
28 putchar(10);
29 return 0;
30 }
练习5、完成注册和登录功能:使用两个一维字符数组存储账户和密码
注册:完成对帐号和密码的输入
登录:见登录账号和密码和注册的账号和密码进行匹配,如果相等,则登录成功,否则登录失败。
1 #include<stdio.h>
2 #include<string.h>
3 int main(int argc, const char *argv[])
4 {
5
6 char arr[100]=""; //注册账号
7 char brr[100]=""; //注册密码
8 char crr[100]=""; //登录账号
9 char drr[100]=""; //登录密码
10 int i=0,j=0;
11 printf("请输入注册账号:");
12 gets(arr);
13 printf("请输入注册账号密码:");
14 gets(brr);
15 printf("登录账号:");
16 gets(crr);
17 printf("登录账号密码:");
18 gets(drr);
19 if(strcmp(arr,crr)==0&&strcmp(brr,drr)==0)
20 {
21 printf("登录成功\n");
22 }
23 else
24 {
25 printf("登录失败\n");
26 }
27
28 return 0;
29 }