当前位置:网站首页>有趣的C语言
有趣的C语言
2022-07-26 22:50:00 【GD_small_bit】
C语言作为编程界语言的老大哥,常年排列在年度最受欢迎的编程语言榜单的前三名中,吸引无数多的青年们去学习,正所谓“C生万物”嘛,C语言建立在二进制上,而其他语言建立在C语言上,所以,我今天将为大家带来一个个比较有趣的小程序,难度较易,适合接触C语言不久的人观看。
1.这个程序可以让一排#在多次打印的过程中,左右两边同时被另外一些字符替代,直到最后#全部被替代掉。
在编写代码之前,我们需要先在里面建立两个两字符数组,并且我们要保证两个字符数组长度要相同,如下:
int main ()
{
char arr1[]="Thank for reading my article";
char arr2[]="############################";
}
接下来我们都知道数组可以由下标访问,并且下标是从零开始的,如图:

我们可以通过下标左右同时一个一个的访问,然后再进行修改。那问题来了,怎么一个一个访问呢,这就要求我们的每次访问时下标都不一样,也就是下标时刻要发生变化,直到数组的全部元素都已经访问了。那我们就可以设置一个变量left和变量right和一个循环,在这个循环每进行一次,我的两个变量就变化一次,这样也就满足我们的要求了,如下:
那么如何变化呢,这就要求我们要进一步思考了,变量right从右边作为下标开始,既然要向中间移动,就要让变量right每次减1,同样的道理,变量left作为最左边开始,要向中间移动,每次就要增加1;
然后我们再加个strlen的库函数计算数组长度,进而求出变量right的初始值,也就是strlen求出来的值减一,保证能让数组访问到最后一个元素并且修改,并且加入到这个循环的限制条件,也就是变量right的值要时刻比变量left大。因为,变量right是从最右边开始作为下标并且发挥作用的,肯定要比变量left大,所以变量left<变量right也是循环的限制条件,保证我们的循环不会进入死循环。
#include<stdio.h>
#include<string.h>
int main ()
{
char arr1[]="Thank for reading my article";
char arr2[]="############################";
int sz=strlen(arr2)-1;
int left=0;
int right=sz;
while(left<right)
{
left++;
right--;
}
return 0;
}
最后,我们要让字符数组arr2被arr1替代,再打印arr2字符数组,如下:
#include<stdio.h>
#include<string.h>
int main ()
{
char arr1[]="Thank for reading my article";
char arr2[]="############################";
int sz=strlen(arr2)-1;
int left= 0;
int right= sz;
while(left<right)
{
arr2[left]=arr1[left];
arr2[right]=arr1[right];
left++;
right--;
printf("%s\n",arr2);
}
return 0;
}

当然,我们可以再添加一些函数,让这个结果不会太早出现。如:
在最前面的头文件添加include<windows.h>,然后在循环的里面最后一行加入Sleep(1000),让打印函数每进行一次,停止一秒,这样就有了持续变化的结果。
#include<stdio.h>
#include<string.h>
#include<windows.h>
int main ()
{
char arr1[]="Thank for reading my article";
char arr2[]="############################";
int sz=strlen(arr2)-1;
int left= 0;
int right= sz;
while(left<right)
{
arr2[left]=arr1[left];
arr2[right]=arr1[right];
left++;
right--;
printf("%s\n",arr2);
Sleep(1000);
}
return 0;
}
结果如下:


直到字符数组arr2全部被替换。
今天的分享就到此为止了,如果觉得写得还可以,关注一波再走,后期更精彩。
边栏推荐
- TCP's three handshakes and four waves (brief introduction)
- (CF1691D) Max GEQ Sum
- RISC-V工具链编译笔记
- RS-485 bus communication application
- 多线程中 synchronized 锁升级的原理是什么?
- 6.29 Zhong'an Summer Internship
- Ogeek meetup phase I, together with cubefs, is hot
- NAT(网络地址转化协议)
- [Database Course Design] SQLSERVER database course design (student dormitory management), course design report + source code + database diagram
- HCIA (network elementary comprehensive experimental exercise)
猜你喜欢

Codeforces Round #809 (Div. 2), problem: (C) Qpwoeirut And The City

HandsomeForum学习论坛

Text to image paper intensive reading ssa-gan: text to image generation with semantic spatial aware Gan

OSPF在MGRE环境下的实验

Introduction to STM32 lesson 1
![C language implementation of the small game [sanziqi] Notes detailed logic clear, come and have a look!!](/img/b9/ade9a808a3f6d24cd9825dc9b010c1.png)
C language implementation of the small game [sanziqi] Notes detailed logic clear, come and have a look!!

TCP的三次握手与四次挥手(简述)

Esp8266wi fi access cloud platform

HCIA基础知识(1)

About unsafe problems such as fopen and strError encountered in vs2022 or advanced version running environment
随机推荐
HCIA静态路由基础模拟实验
RS-485 bus communication application
Influence of pre frequency division value and automatic reload value on interrupt frequency
Codeforces Round #809 (Div. 2), problem: (C) Qpwoeirut And The City
Experiment exercise of two-layer packaging technology (HDLC, ppp--pap\chap, GRE)
Lecture 3 - GPIO input / output library function usage and related routines
CF 1333C Eugene and an array
TCP的三次握手与四次挥手(简述)
7.7 sheen Xiyin written test
全网显示 IP 归属地,是怎么实现的?
Codeforces Round #809 (Div. 2), problem: (C) Qpwoeirut And The City
[explain C language in detail] this article takes you to know C language and makes you impressed
First knowledge of C language (2)
OSPF在MGRE环境下配置及LSA的优化---减少LSA更新量(汇总、特殊区域)
First acquaintance with C language (1)
初识网页设计
The latest C language introduction and advanced - the most complete and detailed C language tutorial in history!! Section 1 - overview of C language
The basic configuration of static routing (planning of IP address and configuration of static routing) realizes the accessibility of the whole network.
About unsafe problems such as fopen and strError encountered in vs2022 or advanced version running environment
记录第N次SQL异常