Bootstrap

7月9号笔记

今日笔记思维导图:

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

int main() {
	int data[100][2];
	char s[100];
	printf("请输入一个字符串:\n");
	gets(s);
	for (int i = 0; i < 100; i++)
	{
		data[i][0] = -1;
		data[i][1] = -1;
	}
	for (int  i = 0; i < strlen(s); i++)
	{
		for (int j = 0; j < 100;j++) {
			if (data[j][0] == s[i]+0) {
				data[j][1] = data[j][1] + 1;
				break;
			}
			if (data[j][0] == -1) {
				data[j][0] = s[i] + 0;
				data[j][1] = data[j][1] + 1;
				break;
			}
		}
	}
	for (int i = 0; i <100; i++)
	{
		if (data[i][0] == -1) {
			break;
		}
		printf("%c出现的次数是%d次\n", data[i][0], data[i][1]+1);
	}
	return 0;
}

作业二:提示并输入一个字符串,求出该字符串中所有数字的总和

int main() {
	int sum = 0;
	char s[100];
	printf("请输入一个字符串:\n");
	gets(s);
	for (int  i = 0; i < strlen(s); i++)
	{
		if (s[i] >= 48 && s[i] <= 57) {
			sum += s[i]-48;
		}
	}
	printf("数字总和为:%d", sum);
	return 0;
}

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

#define row 3
#define column 4
int main() {
	int data[row][column] = { 0 };
	int array[row] = { 0 };
	for (int i = 0; i < row; i++) {
		for (int j = 0; j < column; j++) {
			printf("请输入第%d行,第%d列的元素:", i + 1, j + 1);
			scanf("%d", &data[i][j]);
		}
		printf("\n");
	}
	for (int i = 0; i < row; i++) {
		int max = 0,maxj=0;
		for (int j = 0; j < column; j++) {
			if (data[i][j] > max) {
				max = data[i][j];
				maxj = j;
			}
			printf("%d\t", data[i][j]);
		}
		array[i] = data[i][maxj];
		printf("\n");
	}
	for (int  i = 0; i < row-1; i++)
	{
		for (int j = 0; j <row-(1+i); j++)
		{
			if (array[j] > array[j + 1]) {
				int flag = array[j];
				array[j] = array[j + 1];
				array[j + 1] = flag;
			}
		}
	}
	printf("升序数组为:\n");
	for (int i = 0; i < row; i++)
	{
		printf("%d\t", array[i]);
	}
	printf("\n");
	return 0;
}

作业四:提示并输入两个一维整形数组,求这两个数组的交集

#define row 2
#define column 5
int main() {
	int data[row][column] = { 0 };

	for (int i = 0; i < row; i++) {
		for (int j = 0; j < column; j++) {
			printf("请输入第%d个数组,第%d列的元素:", i + 1, j + 1);
			scanf("%d", &data[i][j]);
		}
		printf("\n");
	}
	printf("两个数组交集为:\n");
	for (int i = 0; i < column;i++) {
		for (int j = 0; j < column; j++)
		{
			if (data[0][i] == data[1][j]) {
				printf("%d\t", data[1][j]);
			}
		}
	}
	return 0;
}

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

int main() {
	char account[10] = {""};
	char password[10] = {""};
	char a[10] = { "" };
	char p[10] = { "" };
	char choose[4] = { "" };
	int flag = 0,success=1;
	printf("请输入登录账号:\n");
	gets(a);
	printf("请输入登录密码:\n");
	gets(p);
	if (strcmp(account, a) != 0 || strcmp(password, p) != 0) {
		printf("账号或者密码错误,请选择重新登陆或者注册\n");
		if (strcmp(gets(choose), "注册") == 0) {
			flag = 0;
		}
		else
		{
			flag = 1;
		}
	}
	else {
		printf("登录成功\n");
		success = 0;
	}
	while (success) {
		if (flag == 0) {
			printf("请输入注册账号:\n");
			gets(account);
			printf("请输入注册密码:\n");
			gets(password);
			printf("注册成功,前往登录\n");
			flag = 1;
		}
		else
		{
			printf("请输入登录账号:\n");
			gets(a);
			printf("请输入登录密码:\n");
			gets(p);
			if (strcmp(account, a) != 0|| strcmp(password, p) != 0) {
				printf("账号或者密码错误,请选择重新登陆或者注册\n");
				if (strcmp(gets(choose), "注册") == 0) {
					flag = 0;
				}
				else
				{
					flag = 1;
				}
			}
			else {
				printf("登录成功\n");
				success = 0;
			}
		}
	}

	return 0;
}

;