Bootstrap

华清远见杭州day08 20240709

一、

1.提示并输入一个字符串,统计该字符串中字母、数字、空格以及其他字符的个数

#include <stdio.h>
#define L 20

int main(int argc, const char *argv[])
{

	char arr[L] = "";
	int letter = 0,
		num = 0,
		blank = 0,
		other = 0;
	printf("请输入一个字符串:\n");
	gets(arr);
	for(int i=0; i<L; i++)
	{
		if(arr[i]>='A' && arr[i]<='Z' || arr[i]>='a' && arr[i]<='z')
		{
			letter++;
		}
		else if(arr[i]>='0' && arr[i]<='9')
		{
			num++;
		}
		else if(arr[i]==' ')
		{
			blank++;
		}
		else if(arr[i]==0)
		{
			break;
		}
		else
		{
			other++;
		}
	}
	printf("该字符串中有\n字母:%2d个\n数字:%2d个\n空格:%2d个\n其他:%2d个\n",letter,num,blank,other);
	return 0;
}

2.提示并输入一个字符串,求出该字符串中所有数字的总和

#include <stdio.h>
#define L 20

int main(int argc, const char *argv[])
{
	char arr[L] = "";
	int sum = 0, len = L;
	printf("请输入一个长度不超过%d的字符串:\n", len);
	gets(arr);
	for(int i=0; i<L; i++)
	{
		if(arr[i]>='1' && arr[i]<='9')
		{
			sum += arr[i]-48;
		}
		else if(arr[i]==0)
		{
			break;
		}
	}
	printf("该字符串中所有数字的总和为:%d\n",sum);
	return 0;
}

3.定义一个4*3的二维整型数组,完成对二维数组的输入、输出。并将该二维数组中每一行的最值放入到一个一维数组中,并对该一维数组进行升序排序后输出。

#include <stdio.h>
#define X 4
#define Y 3

int main(int argc, const char *argv[])
{
	int arr[X][Y] = {0},
		max[X] = {0},
		temp = 0;
	printf("请输入一个4*3的二维数组:\n");
	for(int i=0; i<X; i++)
	{
		for(int j=0; j<Y; j++)
		{
			printf("第%d行,第%d列:", i+1, j+1);
			scanf("%d",&arr[i][j]);
		}
	}
	printf("该数组每行的最大值为:\n");
	for(int i=0; i<X; i++)
	{
		max[i] = arr[i][0];
		for(int j=1; j<Y; j++)
		{
			if(max[i] < arr[i][j])
			{
				max[i] = arr[i][j];
			}
		}
		printf("第%d行最大值为:%d\n", i+1, max[i]);
	}
	for(int i=0; i<X; i++)
	{
		for(int j=i+1; j<X; j++)
		{
			if(max[i] > max[j])
			{
				temp = max[i];
				max[i] = max[j];
				max[j] = temp;
			}
		}
	}
	printf("这些最大值的升序排序结果为:\n");
	for(int i=0; i<X; i++)
	{
		printf("%d\t",max[i]);
	}
	putchar(10);
	return 0;
}

4.提示并输入两个一维整型数组,求这两个数组的交集

#include <stdio.h>

int main(int argc, const char *argv[])
{
	int arr[10] = {0},
		brr[10] = {0},
	printf("请按照提示输入两个数组的值:\n");
	for(int i=0; i<10; i++)
	{
		printf("请输入第1个数组的第%d个值:", i+1);
		scanf("%d", &arr[i]);
	}
	for(int i=0; i<10; i++)
	{
		printf("请输入第2个数组的第%d个值", i+1);
		scanf("%d", &brr[i]);
	}
	printf("这两个数组的交集为");
	for(int i=0; i<10; i++)
	{
		for(int j=0; j<10; j++)
		{
			if(arr[i] == brr[j])
			{
				printf("%d\t",arr[i]);
			}
		}
	}
	putchar(10);
	return 0;
}

5.完成注册和登录功能:使用两个一维数组存储账户和密码,注册:完成对账号和密码的输入登录:将登录账号和密码跟注册的账号密码进行匹配,如果相等,则登录成功,否则,登录失败

#include <stdio.h>

int main(int argc, const char *argv[])
{
	char user1[10] = "",
		 user2[10] = "",
		 pwd1[10] = "",
		 pwd2[10] = "";
	printf("注册:\n");
	while(1)
	{
		printf("请输入你的用户名(最少6位且不超过10位):\n");
		scanf("%s", &user1);
		if(strlen(user1)>10 || strlen(user1)<6)
		{
			printf("格式输入错误!");
			continue;
		}
		break;
	}
	while(1)
	{
		printf("请输入你的密码(最少6位且不超过10位):\n");
		scanf("%s", &pwd1);
		if(strlen(pwd1)>10 || strlen(pwd1)<6)
		{
			printf("格式输入错误!");
			continue;
		}
		break;
	}
	printf("请登录:\n");
	while(1)
	{
		printf("请输入你的用户名:");
		scanf("%s", &user2);
		printf("请输入你的密  码:");
		scanf("%s", &pwd2);
		if(strcmp(user1,user2)==0 && strcmp(pwd1,pwd2)==0)
		{
			printf("登陆成功!");
			break;
		}
		else
		{
			printf("登录失败!账号或密码错误,请重新输入\n");
		}
	}
	putchar(10);
	return 0;
}

二、

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;