大家好!今天想和大家一起分享一下这几题刷过的几道题,大家呢也可以从中吸取一些好的方法,我们一起来看一下。
第一道题
这道题呢是关于有序数列的合并问题,第一种做法呢是把两个序列一起放在同一个数组当中去,然后再进行排序,但这种做法呢相对而言比较麻烦,今天呢我给大家分享一下一种好的做法。
#include
int main()
{
int m=0;
int n=0;
int arr1[]={0};
int arr2[]={0};
int i =0;
for(i=0;i { scanf("%d",&arr1[i]); } int j=0; for(j=0;j { scanf("%d",&arr2[j]); } int f=0; int g=0; while(f { if(arr1[f]
{ printf("%d",arr1[f]); f++; } else { printf("%d",arr2[g]); g++; } } if(f==n) { for(;g { printf("%d",arr2[g]); } else { for(;f { printf("%d",arr1[f]); } } return 0; } 这种做法呢其实就是让arr1中的元素和arr2中的元素进行比较,如果arr1[0] 接下来给大家介绍一道序列中删除制定数字的题目 我们来看一下这道题的一个解法,这个题比较简单简洁的一个方式是在同一个数组里操作,可以再定义一个变量j,然后判断arr[i]中的元素如果不是要删除的数字的话,就把它赋值给arr[j],这样就很巧妙地解决了这道题 大家再来看一道大小写字母转换的题目题目要求如下 第一种解法:比较常规的方法 对于多组输入的问题我们通常采用while(scanf("%c",&f)==1) 的形式,scanf每成功输入一个字符就返回1,那么这里为啥会有一个getchar()呢,因为我们在输入的时候每输入一个会进行换行,所以getchar()是用来吃掉换行符的,如果去掉,程序运行的结果就会出现错误,我们不妨来看一下, 我们看到因为换行符的影响造成了输入输出并不是连续的 。 其实这道题对于字符是大小写的判断还可以直接引用库函数 isupper(int c)库函数是用来判断字符是否为大写,如果是返回非0的数,如果不是则返回0,那么有人可能会问c不是整数吗?咋成了字符了,其实在c语言中字符就是整数,因为字符在内存中存储的就是它的ASCll码值,islower(int c) 则是用来判断字符是不是小写,如果是返回非0的数,如果不是则返回0,tolower函数用来把大写字母转换成小写字符,toupper函数用来把小写字母转换成大写,引用的头文件是#include 今天和大家分享的内容就到这里了,大家可以多多提出一些宝贵的意见。



