C语言数组练习

1、打印杨辉三角

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	int m;
	printf("please enter a value:");
	scanf("%d",&m);
	int arr[m][m];
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<m-i;j++)
			printf("  ");
		for(int j=0;j<=i;j++)
		{
			if(j==0||i==j)
				arr[i][j]=1;
			else
				arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
			printf("%4d",arr[i][j]);
		}
		putchar(10);
	}
	return 0;
}

【输入样例】
	please enter a value:6
【输出样例】
               1
             1   1
           1   2   1
         1   3   3   1
       1   4   6   4   1
     1   5  10  10   5   1

2、 图形打印
A
BB
CCC
DDDD
DDDD
CCC
BB
A

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	for(int i='A';i<='D';i++)
	{
		for(int j='A';j<=i;j++)
			printf("%c",i);
		putchar(10);
	}
	putchar(10);
	for(int i='D';i>='A';i--)
	{
		for(int j='D';j>='D'-i+65;j--)
			printf("%c",i);
		putchar(10);
	}
	return 0;
}

【输出样例】
    A
    BB
    CCC
    DDDD
    
    DDDD
    CCC
    BB
    A

3、日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必定4个中的一个,以下为4个嫌疑犯的供词:
A说:罪犯是他们3人当中
B说:人不是我杀的,是c
C说:A和D之间有一个是罪犯
D说:B说的是事实
己知2个人说了真话,2个人说了假话,请编程确定谁是凶手

#include<stdio.h>		
int main(int argc, const char *argv[])
{
	char x;
	for(x='A';x<='D';x++)
	{
		if(((x=='B'||x=='C'||x=='D')+(x=='C')+(x=='A'||x=='D')+(x=='C'))==2)
		{
		printf("凶手是%c\n",x);
		}
	}
	return 0;
}

【输出样例】
  凶手是D

4、给定一个整数,判断它是否被3、5、7整除,并输出一下信息
1.能同时被3,5,7整除(直接输出3 5 7,每个数字之间一个空格)
2.只能内其中两个整数整除(输出两个数,小的在前,大的在后,例如35或者37或者5 7,中间使用空格隔开)
3.只能被其中一个整数整除(输出这个除数)
4.不能被任何数整除,输出小写字母n

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	int num;
	printf("please enter a value:");
	scanf("%d",&num);
		if(num%3==0)
			printf("3 ");
		if(num%5==0)
			printf("5 ");
		if(num%7==0)
			printf("7 ");
		if(num%3!=0&&num%5!=0&&num%7!=0)
			printf("n");
	putchar(10);
	return 0;
}

【输入样例】
  105
【输出样例】
  3 5 7

5、字符串逆置
“good good study”
“study good good”

#include <stdio.h>
#include <string.h>
void strrev(char *p,char *q)
{
	while(p<q)
	{
		char t=*p;*p=*q;*q=t;
		p++;q--;
	}
}
int main(int argc, const char *argv[])
{
	char str[]="good good study";
	char *p=str;
	char *q=str+strlen(str)-1;
	strrev(p,q);
	p=q=str;
	while(*p!='\0')
	{
		while(*q!=' '&&*q!='\0')
			q++;
		char *k=q-1;
		strrev(p,k);
		while(*q==' ')
			q++;
		p=q;
	}
	puts(str);
	return 0;
}

【输出样例】
 "study good good"

6、实现atoi函数

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	char str[]="1234";
	int i=0,sum=0;
	while(str[i])
	{
		int n=str[i]-'0';
		sum=sum*10+n;
		i++;
	}
	printf("%d\n",sum);
	return 0;
}

【输出样例】
   1234

7、输入一个字符串,删除字符串中的空格
“this is my class”
“thisismyclass”

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	char str1[]="this   is  my  class";
	char str2[20];
	int k=0;
	for(int i=0;str1[i]!='\0';i++)
		if(str1[i]!=' ')
			str2[k++]=str1[i];
	str2[k]=0;
	puts(str2);
	return 0;
}

【输出样例】
thisismyclass

8、自定义封装字符串函数,strcmp,strcpy,strlen,strcat

#include <stdio.h>
#include <string.h>
long MyStrlen(char str[]);
int MyStrcmp(char str1[],char str2[]);
void MyStrcpy(char str1[],char str2[]);
void MyStrcat(char str1[],char str2[]);
int main(int argc, const char *argv[])
{
	char str1[20]="abcd";
	char str2[]="qwer";

	long len=MyStrlen(str1);  //调用MyStrlen函数,计算str1的字符串长度,赋值给len
	printf("str1的字符串长度是%ld\n",len);

	int num=MyStrcmp(str1,str2);  //调用MyStrcmp函数,将返回值赋值给num
	if(num>0)printf("str1>str2");
	else if(num<0)printf("str1<str2");
	else printf("str1=str2");
	putchar(10);

	MyStrcat(str1,str2);  //调用MyStrcat函数,将str2连接到str1后面
	printf("str1=%s\n",str1);
	MyStrcpy(str1,str2);  //调用MyStrcpy函数,将str2复制给str1
	printf("str1=%s\n",str1);

	return 0;
}

long MyStrlen(char str[])
{ 
	int count=0,i=0;
	while(str[i])
	{
		count++;
		i++;
	}
	return count;
}

int MyStrcmp(char str1[],char str2[])
{
	int i=0;
	while(str1[i]==str2[i])
	{
		if(str1[i]!='\0')
			break;
		else
			i++;
	}
	return str1[i]-str2[i];
}
void MyStrcpy(char str1[],char str2[])
{
	int i=0;
	while(str2[i])
	{
		str1[i]=str2[i];
		i++;
	}
	str1[i]='\0';
}
void MyStrcat(char str1[],char str2[])
{
	int i=0,j=0;
	for(i=0;str1[i];i++);
	while(str2[j])
		str1[i++]=str2[j++];
	str1[i]='\0';
}

【输出样例】
str1的字符串长度是4
str1<str2
str1=abcdqwer
str1=qwer

在这里插入图片描述

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

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

相关文章

【STM32】GPIO

一、GPIO简介 1. 基本介绍 GPIO是通用输入输出端口的简称&#xff0c;STM32芯片通过GPIO与外设连接&#xff0c;从而实现与外设的数据收发。 最基本的输出功能是由STM32控制引脚输出高、低电平&#xff0c;实现开关控制。如把GPIO引脚接入到LED灯控制LED亮灭&#xff0c;或者…

49天精通Java,第0天,编程语言类型有哪些?我心中的TOP1编程语言,什么是java跨平台性?

目录 一、常见的编程语言类型1、机器语言2、汇编语言3、高级语言 二、计算机编程语言三、跨平台性1、跨平台的优势包括&#xff1a;2、实现跨平台的方式包括&#xff1a; 四、Java的跨平台性五、java运行时和虚拟机六、Java内存管理和Java垃圾回收1、Java内存管理2、Java垃圾回…

SSM学习笔记-------SpringMVC(二)

SSM学习笔记-------SpringMVC&#xff08;二&#xff09; SpringMVC_day021、SSM整合1.1 流程分析1.2 整合配置步骤1&#xff1a;创建Maven的web项目步骤2:添加依赖步骤3:创建项目包结构步骤4:创建SpringConfig配置类步骤5:创建JdbcConfig配置类步骤6:创建MybatisConfig配置类步…

ACL 2023|如何智能生成吸引人又符合实际的标题?

夕小瑶科技说 原创 作者 | 小戏、Python 标题生成&#xff0c;乍一看似乎并不是一个复杂的任务&#xff0c;要数据简单的爬虫就可以获得许多标题-文本对&#xff0c;要评价通过用户点击与浏览的次数就多少可以区分“好标题”与“坏标题”&#xff0c;万事俱备使用一些经典的监…

HTTP/HTTPS 简介||HTTP 消息结构

HTTP/HTTPS 简介 HTTP 协议是 Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写&#xff0c;是用于从万维网&#xff08; WWW:World Wide Web &#xff09;服务器传输超文本到本地浏览器的传送协议。 HTTP 是一个基于 TCP/IP 通信协议来传递数据&a…

IBM N系列存储和NetApp FAS之间的对应关系

IBM在很长一段时间都是OEM NetApp的FAS存储作为他的NAS产品线&#xff0c;在IBM叫做Storage N series&#xff0c;就是N系列&#xff0c;在2014年IBM终止了和NetApp之间的OEM关系&#xff0c;目前在市场上的OEM的NetApp存储型号主要是 FAS3000&#xff0c;FAS31和FAS32的中端系…

【新星计划·2023】Linux系统的架构和组件讲解

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 前言 本文将讲解Linux系统的架构和组件。 目录 一、Linux系统的架构 1、硬件层 2、内核层 3、进程管理子系统 4、内存管理子系统 5、…

C语言 base32与base64加解密

概述 Base32、Base64编码就是分别用32个、64个可打印字符表示二进制数据。 一、Base32规则 32 2^5&#xff0c;所以需要5 Bit来表示一个base32字符。一个字节8 Bit&#xff0c;5和8的最小公倍数是40。编码的过程中&#xff0c;以5个字节为一组转为8个base32字符&#xff0c;不…

服务端⾼并发分布式结构演进之路

1.前置概念 应⽤&#xff08;Application&#xff09;/系统&#xff08;System&#xff09; 为了完成一整套服务的一个程序或相互配合的程序群 模块&#xff08;Module&#xff09;/组件&#xff08;Component&#xff09; 当应⽤较复杂时&#xff0c;为了分离职责&#xf…

2023年测试之路,从功能测试进阶测试开发工程师,突破内卷...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试开发工程师到…

SpringBoot配置外部Tomcat项目启动流程源码分析

前言 SpringBoot应用默认以Jar包方式并且使用内置Servlet容器(默认Tomcat)&#xff0c;该种方式虽然简单但是默认不支持JSP并且优化容器比较复杂。故而我们可以使用习惯的外置Tomcat方式并将项目打War包。 【1】创建项目并打War包 ① 同样使用Spring Initializer方式创建项目 …

并发编程_jmm部分

1. JMM 理解 前提&#xff1a;并发编程有3大问题&#xff0c;可见性、有序性、原子性。 导致可见性的原因是缓存&#xff0c;有序性的原因是 编译器优化。解决方法就是直接禁用缓存和编译器优化&#xff0c;导致程序性能堪忧。 因此合理的方案就是按需禁用缓存和编译器优化。 …

JUC之ThreadLocal

文章目录 1 基础知识1.1 强软弱虚四种引用 2 ThreadLocal出现的好处3 ThreadLocal源码分析3.1 ThreadLocal内存泄露问题3.2 ThreadLocal为什么使用的是弱引用3.3 清扫过期的Entry 4 ThreadLocal使用建议 1 基础知识 1.1 强软弱虚四种引用 【整体结构】 【强引用】 【软引用…

初始网络原理

目录 网络发展史 独立模式 网络互连 局域网LAN 广域网WAN 网络通信基础 IP地址 端口号 认识协议 五元组 协议分层 OSI七层模型 TCP/IP五层&#xff08;或四层&#xff09; 网络设备所在分层 封装和分用 网络发展史 独立模式 独立模式&#xff1a;计算机之间相互…

【技能实训】Day01

文章目录 任务1 项目准备一、开发环境二、系统简介三、项目创建 任务2【任务2.1】菜单项设计及其测试【任务2.2】使用数组存储采集的数据【任务2.3】控制显示采集的数据 任务1 项目准备 一、开发环境 1.JDK8下载及其环境变量配置(JDK8以上版本) 2.IDE &#xff1a;Eclipse 或…

应用层:万维网WWW

1.万维网WWW 笔记来源&#xff1a; 湖科大教书匠&#xff1a;应用层概述 湖科大教书匠&#xff1a;万维网WWW 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 浏览器最重要的部分是渲染引擎&#xff0c;也就是浏览器内核。负责对网页内容进行解析和…

postgresql 数据库 索引 介绍

postgresql 数据库 索引 介绍 文章目录 postgresql 数据库 索引 介绍前言一 什么是索引&#xff1f;二 简介三 索引的种类B-treeHash索引GiST索引GIN 索引BRIN 索引SP-GiST索引 CREATE INDEX1.大纲2.描述3. 参数UNIQUECONCURRENTLYIF NOT EXISTSINCLUDEnameONLYmethodcolumn_na…

Vue3:在 VSCode 中如何成功安装 Mockjs 及成功引入 Mock 的详细过程

Ⅰ、Mock 简介&#xff1a; 1、什么是 Mock&#xff1f; 其一、Mock 的解释一&#xff1a; Mock 服务是指在测试过程中对于某些复杂&#xff08;或者不太好构造&#xff09;的对象&#xff0c;用一个虚拟的对象替代它&#xff1b;对于前端来说&#xff0c;就是后台数据还没有…

RS485或RS232转ETHERCAT连接安川ethercat总线伺服

最近&#xff0c;生产管理设备中经常会遇到两种协议不相同的情况&#xff0c;这严重阻碍了设备之间的通讯&#xff0c;串口设备的数据不能直接传输给ETHERCAT。这可怎么办呢&#xff1f; 别担心&#xff0c;远创智控YC-ECT-RS485/232来了&#xff01;这是一款自主研发的ETHER…

数据结构第一章 绪论——走进数据的世界

名人说&#xff1a;唯一可以确定的是&#xff0c;明天会使我们所有人大吃一惊。——阿尔文托夫勒 本篇笔记整理&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; ✔ 课件资料及视频课程学习&#xff1a;王道 数据结构&#xff08…