C基础day7

一、思维导图

二、课后练习

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

#include<myhead.h>
#define M 20
int main(int argc, const char *argv[])
{
	int sum_a=0,sum_b=0,sum_c=0,sum_d=0;
	char str[M];
	printf("please enter string:");
	gets(str);
//	getchar(); 	//吸收垃圾字符

	//循环判断每个字符
	for(int i=0;str[i]!='\0';i++)
	{
		//字母
		if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z'))
			sum_a++;
		//数字
		else if(str[i]>='0'&&str[i]<='9')
			sum_b++;
		//空格
		else if(str[i] == ' ')
			sum_c++;
		//其他
		else
			sum_d++;
	}

	//输出累计数量
	printf("字符串中有:字母%d个,数字%d个,空格%d个,其他字符%d个\n",sum_a,sum_b,sum_c,sum_d);
	return 0;
}

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

#include<myhead.h>
#define M 20
int main(int argc, const char *argv[])
{
	int sum = 0;
	char str[M];
	printf("please enter string:");
	gets(str);

	//循环判断数字并求和
	for(int i=0;str[i]!='\0';i++)
	{
		if(str[i]>='0' && str[i]<='9')
			sum += str[i] -'0';
	}
	//输出数字总和
	printf("字符串中数字的总和为:%d\n",sum);
	return 0;
}

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

#include<myhead.h>
int main(int argc, const char *argv[])
{
	int arr[4][3]={0};
	//二维数组输入
	for(int i=0;i<4;i++)
	{
		for(int j=0;j<3;j++)
		{
			printf("请输入%d行%d列:",i+1,j+1);
			scanf("%d",&arr[i][j]);
		}
		putchar(10);
	}

	//二维数组输出
	for(int i=0;i<4;i++)
	{
		for(int j=0;j<3;j++)
		{
			printf("%d行%d列:%d\n",i+1,j+1,arr[i][j]);
		}
		putchar(10);
	}

	//定义一维数组存放二维数组每一行最大值
	int brr[4]={0};

	//循环二维数组比较选出每一行最大值
	for(int i=0;i<4;i++)
	{
		int max = arr[i][0];
		for(int j=1;j<3;j++)
		{
			if(max<arr[i][j])
				max = arr[i][j];
		}
		brr[i] = max; 	//将每行最大值存入数组brr
	}

	//对一维数组进行升序排序
	//冒泡排序
	for(int i=1;i<4;i++)
	{
		for(int j=0;j<4-i;j++)
		{
			if(brr[j]>brr[j+1])
			{
				int temp = brr[j];
				brr[j] = brr[j+1];
				brr[j+1] = temp;
			}
		}
	}

	printf("冒泡排序升序排序后的结果:");
	//循环输出
	for(int i=0;i<4;i++)
	{
		printf("%d\t",brr[i]);
	}
	putchar(10);

	//选择排序
	int mini = 0;  //记录最值的下标
	for(int i=0;i<4;i++) 	//遍历整个数组找最值
	{
		mini = i;
		//遍历整个数组比较
		for(int j=i+1;j<4;j++)
		{
			if(brr[mini] > brr[j])
			{
				mini =j; //更新最值下标
			}
		}

		//判断找到的最值是否放在了首位,不是则交换
		if(mini !=i)
		{
			int temp = brr[i];
			brr[i] = brr[mini];
			brr[mini] = temp;
		}
	}


	//输出一位数组排序后结果
	printf("选择排序升序排序后的结果:");
	//循环输出
	for(int i=0;i<4;i++)
	{
		printf("%d\t",brr[i]);
	}
	putchar(10);
	return 0;
}

4、提示并输入两个一维整形数组,求这两个数组的交集。

#include<myhead.h>
#define MAX 100
int main(int argc, const char *argv[])
{
	//提示并输入两个一维数组
	int arr1[MAX],arr2[MAX];
	int size1=0,size2=0;

	printf("please enter arr1 size1:");
	scanf("%d",&size1);
	printf("please enter arrry1:\n");
	for(int i=0;i<size1;++i)
	{
		printf("请输入第个%d元素:",i+1);
		scanf("%d",&arr1[i]);
		getchar();
	}

	printf("please enter arr2 size2:\n");
	scanf("%d",&size2);
	printf("please enter arrry2:");
	for(int i=0;i<size2;++i)
	{
        printf("请输入第个%d元素:",i+1);
		scanf("%d",&arr2[i]);
		getchar();
	}

	//遍历两个数组比较得出交集
	//定义一位数组存储交集
	int brr[MAX];
	int k =0;
	for(int i=0;i<size1;i++)
	{
		for(int j=0;j<size2;j++)
		{
			if(arr1[i] == arr2[j])
			{
				brr[k] = arr1[i];
				k++;
			}
		}
	}

	//输出交集数组brr
	printf("两数组交集为:");
	for(int i=0;i<k;i++)
	{
		printf("%d\t",brr[i]);
	}
	return 0;
}

5、完成注册和登录功能:

#include<myhead.h>

void regis();
int login();

char old_user[32];
char old_passwd[32];
char new_user[32];
char new_passwd[32];

int main(int argc, char const *argv[])
{
    int a,res;
    while(1){ //循环执行
         printf("***********");
         printf("1.注册 2.登录");
         printf("***********\n");
         scanf("%d",&a);
        switch(a){
            case 1:
                  regis();
                  break;
            case 2:
                   while (1)
                   {
                       res = login();
                       if (res==1)
                       {
                           return 0;
                       }else
                       {
                           printf("请重新输入\n");
                       }
                   }  
                   break;
            default:
                  break;
        }
    }
    return 0;
}

void regis(){
    printf("请输入注册帐号\n");
    scanf("%s",old_user);
    printf("请输入注册密码\n");
    scanf("%s",old_passwd);
}
int login(){
    printf("请输入登录帐号\n");
    scanf("%s",new_user);
    printf("请输入登录密码\n");
    scanf("%s",new_passwd);
    if (strcmp(old_user,new_user) == 0 && strcmp(old_passwd,new_passwd) == 0)
    {
       printf("登录成功\n");
       return 1;
    }else{
        return -1;
    }
    
    
 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/787852.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用流式数据库解决「自动化检测服务器性能异常」难题

对 DevOps 团队来说&#xff0c;检测大量服务器的性能异常并尽快响应一直是个挑战。他们设置了各种指标来监控服务器性能&#xff0c;但诊断性能问题复杂且耗时&#xff0c;因为诊断数据的量可能非常大。越来越多的人认为这个过程应该自动化。但怎么做呢&#xff1f; 流式系统…

Chromium编译指南2024 Linux篇-同步Chromium第三方库(四)

1.引言 在成功拉取Chromium源码并创建新分支后&#xff0c;我们需要进一步配置开发环境。这包括拉取必要的第三方库以及设置hooks&#xff0c;以确保我们能够顺利进行编译和开发工作。以下步骤将详细介绍如何进行这些配置。 2.拉取第三方库以及hooks Chromium 使用了大量的第…

2024年7月1日,公布的OpenSSH的漏洞【CVE-2024-6387】

目录 ■概要 ■概要&#xff08;日语&#xff09; ■相关知识 openssh 和 ssh 有区别吗 如何查看 openssh的版本 漏洞描述 glibc Linux是什么 如何查看系统是不是基于 Gibc RHEL Linux 是基于Glibc的Linux吗 还有哪些 Linux版本是基于 GNU C库&#xff08;glibc&…

opencv读取视频文件夹内视频的名字_时长_帧率_分辨率写入excel-cnblog

看视频的时候有的视频文件名贼长。想要翻看&#xff0c;在文件夹里根本显示不出来&#xff0c;缩短又会丢失一些信息&#xff0c;所以我写了一份Python代码&#xff0c;直接获取视频的名字&#xff0c;时长&#xff0c;帧率&#xff0c;还有分辨率写到excel里。 实际效果如下图…

【2024——CUMCM】Matlab快速入门

目录 常识 disp and input 字符串合并 sum 提取矩阵指定位置的元素 指定行列 指定行or指定列&#xff08;返回行/列向量&#xff09; 指定某些行 指定全部元素&#xff0c;按列拼接 size repmat 矩阵的运算 基本运算 形状相同的矩阵运算 每个元素同时和常数相乘或相…

gitee及git的简单使用、下载教(保姆级教程)

前言&#xff1a; GitHub&#xff0c;一个由外国研发的代码开源网站&#xff0c;我们可以通过它获得别人优秀的项目源码&#xff0c;也可以在上面上传自己的劳动成果。但是&#xff0c;我们很难访问外网。于是&#xff0c;我们将目光转向国内一个类似的网站---码云&#xff08…

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(四)支持json和xml的显示

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、相应的界面前端代码 <template><div class"formDesign"><FlowDesign :process"process" :fields"fields" :readOnly"readOnly&quo…

OR-3H7-4晶体管光耦,可对标替代TLP281-4等

提供隔离反馈 逻辑电路之间的接口 提供1通道和4通道 电平转换 DC和AC输入 SMPS中的调节反馈电路 消除接地环路 特征 电流传输比&#xff1a;IF 1mA&#xff0c;VCE 5V&#xff0c;Ta 25 C时最小50% 高输入输出隔离电压。&#xff08;VISO3&#xff0c;750Vrms&#xf…

MySQL GROUP_CONCAT 函数详解与实战应用

提示&#xff1a;在需要将多个值组合成一个列表时&#xff0c;GROUP_CONCAT() 函数为 MySQL 提供了一种强大的方式来处理数据 文章目录 前言什么是 GROUP_CONCAT()基本语法 示例使用 GROUP_CONCAT()去除重复值排序结果 前言 提示&#xff1a;这里可以添加本文要记录的大概内容…

16:9横屏短视频素材库有哪些?横屏短视频素材网站分享

在这个视觉内容至关重要的时代&#xff0c;16:9横屏视频因其宽广的画面和优越的观赏体验&#xff0c;已经成为无数创作者和营销专家的首选格式。但要创造出吸引人的横屏视频&#xff0c;高质量的视频素材库是不可或缺的。不管你是资深视频制作人还是刚入行的新手&#xff0c;下…

Proteus + Keil单片机仿真教程(五)多位LED数码管的静态显示

Proteus + Keil单片机仿真教程(五)多位LED数码管 上一章节讲解了单个数码管的静态和动态显示,这一章节将对多个数码管的静态显示进行学习,本章节主要难点: 1.锁存器的理解和使用; 2.多个数码管的接线封装方式; 3.Proteus 快速接头的使用。 第一个多位数码管示例 元件…

Maven在Windows中的配置方法

本文介绍在Windows电脑中&#xff0c;下载、配置Maven工具的详细方法。 Maven是一个广泛使用的项目管理工具&#xff0c;主要针对Java项目&#xff0c;但也可以用于其他类型的项目&#xff1b;其由Apache软件基金会维护&#xff0c;旨在简化和标准化项目构建过程&#xff0c;依…

库存软件有永久免费版吗?

随着商品种类的增加和供应链的日益复杂&#xff0c;如何高效、准确的追踪库存数量&#xff0c;预测需求&#xff0c;减少积压或缺货&#xff0c;成为许多商家头疼的问题&#xff0c;找一款合适的库存管理软件成为当务之急。但是&#xff0c;高昂的购买成本让中小企业望而却步。…

职场必看:如何用AI打造完美简历和面试准备

如何用AI打造完美简历和面试准备 1. 未来简历AI平台:开启个性化简历制作 想要在职场上留下深刻印象?首先,你需要一份出色的简历。未来简历AI平台让你通过简单的扫码和输入信息,快速开始简历制作。 2. 简历模板:选择适合你的岗位模板 面对众多简历模板,如何挑选?平…

鸿蒙语言基础类库:【@ohos.util.ArrayList (线性容器ArrayList)】

线性容器ArrayList 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 …

Windows11配置WSL2支持代理上网

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装WSL2分发版二、配置步骤三、测试总结 前言 说起来本来这个功能我也不需要的&#xff0c;只是最近突然有个需求就顺便研究了下&#xff0c;WSL2默认的网…

Cesium自定义着色器构件三角面片【闪烁】问题,但是一移动视角就闪烁

问题&#xff1a;已知各个顶点的坐标信息、颜色和索引信息&#xff0c;并自定义绘制三角面片。 但是绘制的三角面片随着视角稍微改动就会出现闪烁现象&#xff01;&#xff01;&#xff01;why? Cesium数据类型的精度问题&#xff0c;例如下面为了获取能接收到高精度坐标信息…

【自动驾驶/机器人面试C++八股精选】专栏介绍

目录 一、自动驾驶和机器人技术发展前景二、C在自动驾驶和机器人领域的地位三、专栏介绍四、订阅需知 一、自动驾驶和机器人技术发展前景 随着人工智能、机器学习、传感器技术和计算能力的进步&#xff0c;自动驾驶和机器人的技术水平不断提升&#xff0c;使得它们更加智能、可…

秋招Java后端开发冲刺——并发篇2(JMM与锁机制)

本文对Java的内存管理模型、volatile关键字和锁机制进行详细阐述&#xff0c;包括synchronized关键字、Lock接口及其实现类ReentrantLock、AQS等的实现原理和常见方法。 一、JMM&#xff08;Java内存模型&#xff09; 1. 介绍 JMM定义了共享内存中多线程程序读写操作的行为规…

鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs (上)

一、自定义组件 1、自定义组件 自定义组件&#xff0c;最基础的结构如下&#xff1a; Component struct Header {build() {} } 提取头部标题部分的代码&#xff0c;写成自定义组件。 1、新建ArkTs文件&#xff0c;把Header内容写好。 2、在需要用到的地方&#xff0c;导入…