一些杂乱的C语言算法
将字符串从小写转换为大写
在下面的程序中,将要求用户输入小写的String,然后程序会将其转换为大写的String。程序中遵循的逻辑:所有小写字母(a-z)的ASCII值均在97至122之间,而其相应的大写字母(A-Z)的ASCII值均比其小32。例如,“ a”的ASCII值为97,而“ A”的ASCII值为65(97-32)。其他字母也一样。基于此逻辑,编写了以下C程序进行转换。
#include <stdio.h>
#include <string.h>int main(int argc, char const *argv[])
{char str[128];int i;printf("Enter the string:");scanf("%s",str);for (i = 0; i <= strlen(str);i++){if(str[i] >= 97 && str[i] <= 122)str[i] = str[i] - 32;}printf("\nUpper Case String is : %s",str);printf("\n");return 0;
}
编译输出:
显示用户输入的字符的ASCII的值
ASCII值将英文字符表示为数字,每个字母分配有一个0到127之间的数字。例如:
#include <stdio.h>int main(int argc, char const *argv[]){char ch;printf("Enter any character:");scanf("%c", &ch);/*使用格式说明符,我们可以获得ASCII码个字符。当我们将%d格式说明符用于char变量,然后显示char的ASCII值*/ printf("ASCII value of character %c is: %d", ch, ch);printf("\n");return 0;
}
编译输出:
使用指针查找最大数量
在下面的程序中,我们有三个整数num1,num2和num3。我们已分配这三个数字的地址,以三分p1,p2和p3分别。我们使用if else语句对存储在指针所指向的地址处的值进行了比较。
#include <stdio.h>int main(int argc, char const *argv[]){int num1, num2, num3;int *p1, *p2, *p3;printf("Enter First Number: ");scanf("%d",&num1);printf("Enter Second Number: ");scanf("%d",&num2);printf("Enter Third Number: ");scanf("%d",&num3);//将输入数字的地址分配给指针p1 = &num1;p2 = &num2;p3 = &num3;if(*p1 > *p2){if(*p1 > *p3){printf("%d is the largest number", *p1);}else{printf("%d is the largest number", *p3);}}else{if(*p2 > *p3){printf("%d is the largest number", *p2);}else{printf("%d is the largest number", *p3);}}printf("\n");return 0;
}
编译输出:
检查数字是否为回文
如果数字保持不变,即使我们反转其数字,该数字也称为回文数。例如12321是回文数,因为如果我们反转其数字,它将保持不变。
#include<stdio.h>int check_palindrome(int num){static int reverse_num=0,rem;if(num!=0){rem=num%10;reverse_num=reverse_num*10+rem;check_palindrome(num/10);}return reverse_num;
}
int main(){int num, reverse_num;printf("Enter a number: ");scanf("%d",&num);reverse_num = check_palindrome(num);if(num==reverse_num)printf("%d is a palindrome number",num);elseprintf("%d is not a palindrome number",num);printf("\n");return 0;
}
编译输出:
检查元音或辅音
#include <stdio.h>
#include <stdbool.h>int main(){char ch;bool isVowel = false;printf("Enter an alphabet: ");scanf("%c",&ch);if(ch=='a'||ch=='A'||ch=='e'||ch=='E'||ch=='i'||ch=='I'||ch=='o'||ch=='O'||ch=='u'||ch=='U'){isVowel = true;}if (isVowel == true)printf("%c is a Vowel", ch);elseprintf("%c is a Consonant", ch);printf("\n");return 0;
}
编译输出:
使用递归反转字符串
#include <stdio.h>
#include <string.h>void reverse_string(char*, int, int);int main(){char string_array[150]; //此数组最多可容纳150个printf("Enter any string:");scanf("%s", &string_array);//调用我们用户定义的函数reverse_string(string_array, 0, strlen(string_array)-1);printf("\nReversed String is: %s",string_array);printf("\n");return 0;
}void reverse_string(char *x, int start, int end)
{char ch;if (start >= end)return;ch = *(x+start);*(x+start) = *(x+end);*(x+end) = ch;reverse_string(x, ++start, --end);
}
编译输出:
使用递归的数组元素的总和
#include<stdio.h>int sum_array_elements( int arr[], int n );int main(){int array[] = {1,2,3,4,5,6,7};int sum;sum = sum_array_elements(array,6);printf("\nSum of array elements is:%d",sum);printf("\n");return 0;
}int sum_array_elements( int arr[], int n ) {if (n < 0) {return 0;} else{return arr[n] + sum_array_elements(arr, n-1);}
}
编译输出:
使用指针的数组元素的总和
#include<stdio.h>int main(){int array[5];int i,sum=0;int *ptr;printf("\nEnter array elements (5 integer values):");for(i=0;i<5;i++)scanf("%d",&array[i]);/* array = &array[0] */ptr = array;for(i=0;i<5;i++) {//*ptr 指地址sum = sum + *ptr;ptr++;}printf("\nThe sum is: %d",sum);printf("\n");return 0;
}
编译输出:
以升序排列数字
下面的程序提示用户输入n个数字,一旦用户输入完这些数字,该程序将对其进行排序并以升序显示。
#include<stdio.h>void sort_numbers_ascending(int number[], int count){int temp, i, j, k;for (j = 0; j < count; ++j){for (k = j + 1; k < count; ++k){if (number[j] > number[k]){temp = number[j];number[j] = number[k];number[k] = temp;}}}printf("Numbers in ascending order:\n");for (i = 0; i < count; ++i)printf("%d\n", number[i]);
}int main(){int i, count, number[20];printf("How many numbers you are gonna enter:");scanf("%d", &count);printf("\nEnter the numbers one by one:");for (i = 0; i < count; ++i)scanf("%d", &number[i]);sort_numbers_ascending(number, count);return 0;
}
编译输出:
二进制转换为十进制
创建了一个用户定义的函数,binaryToDecimal()用于从二进制到十进制的转换。该程序将二进制数(由用户输入)作为输入,并使用函数将其转换为十进制数。
#include <stdio.h>
#include <math.h>int binaryToDecimal(long binarynum){int decimalnum = 0, temp = 0, remainder;while (binarynum!=0){remainder = binarynum % 10;binarynum = binarynum / 10;decimalnum = decimalnum + remainder*pow(2,temp);temp++;}return decimalnum;
}int main(){long binarynum;printf("Enter a binary number: ");scanf("%ld", &binarynum);printf("Equivalent decimal number is: %d", binaryToDecimal(binarynum));printf("\n");return 0;
};
编译输出:
欢迎关注公众号【程序猿编码】,添加本人微信号(17865354792),回复:领取学习资料。进入技术交流群。网盘资料有如下:
一些杂乱的C语言算法相关推荐
- c语言单片机求最小公倍数,单片机常用的14个C语言算法,要熟记在心哦!
原标题:单片机常用的14个C语言算法,要熟记在心哦! 算法(Algorithm):计算机解题的基本思想方法和步骤. 算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么 ...
- 易语言html规则分析,易语言算法原理浅析【一】(示例代码)
注: 如果你看完了下面的文章.就来试试这个KeyGenMe吧,相信你能有所收获. 一.文章开头首先我们要贴上一段易语言代码,并且编译这段代码,从汇编角度分析易语言程序编译后,易语言算法在汇编中的实现过 ...
- c语言约瑟夫环问题,C++_详解约瑟夫环问题及其相关的C语言算法实现,约瑟夫环问题
N个人围成一圈 - phpStudy...
详解约瑟夫环问题及其相关的C语言算法实现 约瑟夫环问题 N个人围成一圈顺序编号,从1号开始按1.2.3......顺序报数,报p者退出圈外,其余的人再从1.2.3开始报数,报p的人再退出圈外,以此类推 ...
- 编写一个字节数的rtu C语言校验程序,Modbus通信协议中CRC校验的快速C语言算法
Modbus通信协议中CRC校验的快速C语言算法 2004年第11期 福 建 电 脑 63 Modbus通信协议中CRC校验的快速C语言算法 孟开元 (西安石油大学计算机学院陕西西安710065) [ ...
- c语言编常见算法,5个常见C语言算法
5个常见C语言算法 十进制转换为二进制的递归程序 字符串逆置的递归程序 整数数位反序,例如12345->54321 四舍五入程序(考虑正负数) 二分法查找的递归函数 #include #incl ...
- 算法与数据结构c语言版PPT,C语言算法与数据结构.ppt
C语言算法与数据结构.ppt 第十二章 算法与数据结构12.1 算法的基本概念,该节知识点所占试题比重为12,属于重点考查对象,基本上每次必考,主要考查算法的定义和对算法复杂度的理解.历次试题分值在0 ...
- c语言中闰年的流程图_C语言-算法与流程图
<C语言-算法与流程图>由会员分享,可在线阅读,更多相关<C语言-算法与流程图(22页珍藏版)>请在人人文库网上搜索. 1.目录,第一章 绪论 第二章 算法与流程图 第三章 数 ...
- c语言二分法_14个经典C语言算法你就不看一眼?(附详细代码)
今天,给大家讲一讲,单片机常用的14个C语言算法(附详细代码)哟! 一.计数.求和.求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值.终值或结束条件,更要注意用来表示计数.和. ...
- 怎么得到16位校检和-c语言,16位CRC校验C语言算法.pdf
16位CRC校验C语言算法.pdf CRC 算法原理及C 语言实现 摘 要 本文从理论上推导出CRC算法实现原理,给出三种分别适应不同计算机或微控 制器硬件环境的C语言程序.读者更能根据本算法原理,用 ...
最新文章
- 厦门大学计算机专业录取分数线2019,厦门大学2019年本科生录取分数线
- CVPR2017: Learning Deep Context-aware Features over Body and Latent Parts for
- 在线压缩png图像工具
- android 提供的方法,Android编程之创建自己的内容提供器实现方法
- mysql join 循环_关于mysql联表的内嵌循环操作nested loop join中on和where执行顺序问题...
- java 防止证书导出_如何把安全证书导入到java中的cacerts证书库
- Eve-NG-Toolkit
- offset must be non-negative and no greater than buffer length (0)(tensorflow.keras)
- 1.3 将临时变量内联化
- PassFab iPhone Unlocker安装方法
- delphi IDE插件 cnpack 使用记录
- 【安装配置】DirectAdmin安装Nginx方法
- python股票网格交易法详解_详解网格交易法
- 光栅(Raster)性能优化
- pixi的使用之创建和操作精灵
- 内存管理(15)——UI(20)——DeleteObject
- 斥资75元,我搭建了自己的博客网站
- 学习python的微信公众号_python学习—实现微信公众号聊天机器人
- 《文言文复兴系列 4》(江湖一剑客)
- 不要以你的现状来判断你的未来--俞敏洪
热门文章
- 创新实训【12】——热词查询功能
- 【JAVA】项目开发团队分配管理软件
- 为什么你写了一万小时的代码,却没能成为架构师?
- 如何快速查找下载文献
- android socket代理app,android socket客户端app
- 互动作业Android版本下载,互动作业app
- 多linux系统的安装方法,在Linux系统中安装使用WPS的方法
- 《Artificial Intelligence in Finance》(AI金融, by Yves Hilpisch)台湾谢承熹Chenghsi Hsieh老师中文讲解
- 梦幻西游手游300级装备、30级宝石、抽奖后台、坐骑版本搭建技术讲解
- C语言 IO多路复用——select函数