c语言实例练习笔记

news2025/1/13 7:52:27

本博文参考题目的地址看右边----》C 语言实例 | 菜鸟教程

以下为个人边练习边敲记录(解法不一定和官方一样,会自己扩展一些,练习嘛,肯定是学到的都用上,算检验之前的学进去的是不是对的。)

C 语言实例 - 输出 "Hello, World!"

#include <stdio.h>
int main(){
   printf("hello world");
}

C 语言实例 - 输出整数

#include <stdio.h>
int main(){
   int a=1;
   printf("%d",a);
}

C 语言实例 - 输出单个字符

#include <stdio.h>
#include <windows.h>
int main(){
   SetConsoleOutputCP(65001);
   char a='z';
   printf("%c",a);
}

C 语言实例 - 输出浮点数

#include <stdio.h>
int main(){
   float a=1.01;
   printf("%f",a);
}

 C 语言实例 - 输出双精度(double)数

#include <stdio.h>
int main(){
   double d=20.56;
   printf("%g",d);
}

 C 语言实例 - 两个整数相加

#include <stdio.h>
int main(){
   int a=1;
   int b=2;
   int c=a+b;
   printf("%d",c);
}

 C 语言实例 - 两个浮点数相乘

#include <stdio.h>
int main(){
   float a=2.5;
   float b=1.4;
   float c=a*b;
   // printf("%g",c);
   printf("%.2lf",c);//保留小数点后2位
}

C 语言实例 - 字符转 ASCII 码(ascii对照表---》C 语言实例 – 字符转 ASCII 码 | 菜鸟教程)

#include <stdio.h>
#include <windows.h>
int main(){
   SetConsoleOutputCP(65001);
   char a;
   printf("请输入当个字符:");
   scanf("%c",&a);// char a[]字符串才不用&,字符需要& ,字符串默认就指向内存地址
   printf("'%c'的ASCII码是: %d",a,a);
}

 C 语言实例 - 两数相除求余数

#include <stdio.h>
#include <windows.h>
int main(){
   SetConsoleOutputCP(65001);
   int a,b,c,d;
   printf("请输入a,b用空格隔开");
   scanf("%d %d",&a,&b);
   c=a/b;
   d=a%b;
   printf("%d/%d=%d 余%d",a,b,c,d);
}

 C 语言实例 - 数值比较

#include <stdio.h>
#include <windows.h>
int main(){
   SetConsoleOutputCP(65001);
   int a=1,b=999;
   char c;
   c=a>b?'a':'b';
   printf("%c大",c); //不是用%s 单字符输出用%c
}

 C 语言实例 - 计算 int, float, double 和 char 字节大小

#include <stdio.h>
#include <windows.h>
int main(){
   SetConsoleOutputCP(65001);
   int a;
   char b;
   float c;
   double d;
   printf("int占:%d\nchar占:%d\nfloat占:%d\ndouble占:%d",sizeof(a),sizeof(b),sizeof(c),sizeof(d));
   return 0;
}

 C 语言实例 - 交换两个数的值

#include <stdio.h>
#include <windows.h>
int main(){
   SetConsoleOutputCP(65001);
   double a,b,c;
   printf("请输入2个双精度用空格隔开: ");
   scanf("%lf %lf",&a,&b);
   printf("交换前,a=%lf,b=%lf\n",a,b);
   c=a;
   a=b;
   b=c;
   printf("交换后,a=%.2lf,b=%.2lf",a,b);
}

C 语言实例 - 判断奇数/偶数

#include <stdio.h>
#include <windows.h>
int main(){
   SetConsoleOutputCP(65001);
   int a;
   printf("请输入一个int型数字: ");
   scanf("%d",&a);
   char *str;
   str=a%2==0?"偶数":"奇数";
   printf("你输入的是: %s",str);
}

 C 语言实例 - 数组里,奇数偶数有哪些(博主自己扩展的题

#include <stdio.h>
#include <windows.h>
int main(){
   SetConsoleOutputCP(65001);
   int arr[]={10,13,26,55,22,66,44,73};
   int len=sizeof(arr)/sizeof(*arr);
   int arr2[10];
   int arr2Index=0;
   int arr3[10];
   int arr3Index=0;
   int i=0;
   while (i<len)
   {
      if(arr[i]%2==0){
         arr2[arr2Index]=arr[i];
         arr2Index++;
      }else{
         arr3[arr3Index]=arr[i];
         arr3Index++;
      }
      i++;
   }
   printf("arr数组中偶数有\n");
   for(int j=0;j<arr2Index;j++){
      printf("%d ",arr2[j]);
   }
   printf("\n奇数有\n");
   for(int j=0;j<arr3Index;j++){
      printf("%d ",arr3[j]);
   }
}

 C 语言实例 - 判断元音/辅音

#include <stdio.h>
#include <windows.h>
#include <ctype.h>//大小写处理 系统便准库
int main(){
   SetConsoleOutputCP(65001);
   char a;//单个字符定义不用c[]
   printf("请输入单个英文字母:");
   scanf("%c",&a);//%c单个字符
   if(isupper(a)==1){//判断输入字母是否大写  大写放回1 小写返回0
      a=tolower(a); //大写转小写 A->a  B->b
   }
   if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u'){//元音a、e、i、o、u 这五个字母
      printf("你输入的是元音"); 
   }else{
      printf("你输入的是辅音"); 
   }
}

 C 语言实例 - 判断多个数中最大值

#include <windows.h>
#define ArrLen 3
int main(){
   SetConsoleOutputCP(65001);
   
   int a[ArrLen];
   printf("请输入3个数字空格隔开:");
   scanf("%d %d %d",&a[0],&a[1],&a[2]);
   int maxVal=a[0];
   for(int i=1;i<ArrLen;i++){
      if(maxVal<a[i]){
         maxVal=a[i];
      }
   }
   printf("输入的最大值是:%d",maxVal);
}

 C 语言实例 - 判断闰年

输出年/月/日 时:分:秒可以看博主另一篇博文----》c语言输出年/月/日 时:分:秒

#include <stdio.h>
#include <time.h>
#include <windows.h>
#define CCT (+8)
int main ()
{
   SetConsoleOutputCP(65001);
   time_t rawtime;
   struct tm *info;
   // struct tm {
   //    int tm_sec;         /* 秒,范围从 0 到 59                */
   //    int tm_min;         /* 分,范围从 0 到 59                */
   //    int tm_hour;        /* 小时,范围从 0 到 23                */
   //    int tm_mday;        /* 一月中的第几天,范围从 1 到 31                    */
   //    int tm_mon;         /* 月份,范围从 0 到 11                */
   //    int tm_year;        /* 自 1900 起的年数                */
   //    int tm_wday;        /* 一周中的第几天,范围从 0 到 6                */
   //    int tm_yday;        /* 一年中的第几天,范围从 0 到 365                    */
   //    int tm_isdst;       /* 夏令时                        */    
   // };
   time(&rawtime);
   info = gmtime(&rawtime);
   //年
   int year=info->tm_year+1900;
   int bfh=year%4;
   char msg[20]={"\0"};
   if(bfh==0){
      strcpy(msg,"闰年");
      
   }else{
      strcpy(msg,"不是闰年");
   }
   printf("当前是%u:%s",year,msg);
 
   return(0);
}

 C 语言实例 - 判断正数/负数

#include <stdio.h>
#include <windows.h>
int main ()
{
   SetConsoleOutputCP(65001);
   double val;
    printf("%请输入数字:");
   scanf("%lf",&val);
   char str[100]={"\0"};
   if(val==0){
      strcpy(str,"即不是正数也不是负数");
   }else if(val>0){
      strcpy(str,"正数");
   }else{
      strcpy(str,"负数");
   }
   printf("你输入的是 %g,他是%s",val,str);
}

计算自然数的和

for循环

#include <stdio.h>
#include <windows.h>
int main ()
{
   SetConsoleOutputCP(65001);
   int n,sum=0;
   printf("请输入自然数n:");
   scanf("%d",&n);
   for(int i=0;i<=n;i++){
      sum+=i;
   }
   printf("%d",sum);
}

 while do

#include <stdio.h>
#include <windows.h>
int main ()
{
   SetConsoleOutputCP(65001);
   int n,sum=0;
   printf("请输入自然数n:");
   scanf("%d",&n);
   int i=0;
   while(i<=n &&n>0){
      sum+=i;
      i++;
   }
   printf("%d",sum);
}

递归

#include <stdio.h>
#include <windows.h>
int addNum(int val){
   if(val!=0){
      return val+addNum(val-1);
   }else{
      return val;
   }
}
int main ()
{
   SetConsoleOutputCP(65001);
   int n,sum=0;
   printf("请输入自然数n:");
   scanf("%d",&n);
   printf("%d",addNum(n));
}

判断字母

#include <stdio.h>
#include <windows.h>
#include <ctype.h>
int main ()
{
   SetConsoleOutputCP(65001);
   char n;
   printf("判断是不是字母:");
   scanf("%c",&n);
   if(isalpha(n)){// isalpha 该函数检查所传的字符是否是字母。 isupper判断大写返回1 ,islower(int c) 判断是不是小写
      printf("你输入的%c是字母",n);
   }else{
      printf("你输入的%c不是字母",n);
   }
}

九九乘法口诀表

#include <stdio.h>
#include <windows.h>
int main ()
{
   SetConsoleOutputCP(65001);
   for(int i=1;i<10;i++){
      for(int j=1;j<=i;j++){
         printf("%dx%d=%d ",j,i,i*j);
      }
      printf("\n");
   }
}

求两数的最大公约数

#include <stdio.h>
#include <windows.h>
int main ()
{
   SetConsoleOutputCP(65001);
   int a,b,val;
   printf("请输入2个正整数:");
   scanf("%d %d",&a,&b);
   for(int i=1;i<=a&&i<=b;i++){
      if(a%i==0 && b%i==0){
            val=i;
      }
   }
   printf("%d和%d的最大公约数是:%d",a,b,val);
}

 循环输出26个字母

#include <stdio.h>
#include <windows.h>
int main ()
{
   SetConsoleOutputCP(65001);

   for(int i='A';i<='Z';i++){
      printf("%c ",i);
   }
}

 判断数字为几位数

#include <stdio.h>
#include <windows.h>
int main ()
{
   SetConsoleOutputCP(65001);
   long long n;
   printf("请输入n:");
   scanf("%lld",&n);
   int size=0;
   while(n!=0){
      n=n/10;
      size++;
   }
   printf("%lld是 %d 位数",n,size);
   //gcc, 两个long合用,即long long类型,表示C语言目前最长的系统整型类型,每个long long类型占8字节,64位。其格式化字符为"%lld"。
}

 计算一个数的 n 次方

#include <stdio.h>
#include <windows.h>
int main ()
{
   SetConsoleOutputCP(65001);
   int a,b,n=1;
   long long z=1;
   printf("请输入基数和指数并空格隔开:");
   scanf("%d %d",&a,&b);
   while(n<=b){
      z*=a;
      n++;
   }
   printf("%lld",z);
}

也可以用math.h的pow方法

#include <stdio.h>
#include <windows.h>
#include <math.h>
int main ()
{
   SetConsoleOutputCP(65001);
   int a,b,n=1;
   long long z=1;
   printf("请输入基数和指数并空格隔开:");
   scanf("%d %d",&a,&b);
   z=pow(a,b);
   printf("%lld",z);
}

二进制转十进制

#include <stdio.h>
#include <windows.h>
#include <math.h>
int main ()
{
   SetConsoleOutputCP(65001);
   long long a;
   printf("请输入二进制:");
   scanf("%lld",&a);
   int remainder=0;
   int endVal=0;
   int i=0;
   while(a!=0){
      remainder=a%10; //1011 经过a%10求膜后得到1 因
      a/=10;         //a变成101
      endVal+=remainder*pow(2,i); //1*2^0=1;  任何数的0次方是1   
      i++;
   }
   printf("%d",endVal);
}

 其实就是改一个这个位置就可以改变输入的进制

endVal+=remainder*pow(8,i); //这是八进制
endVal+=remainder*pow(16,i); //这是十六进制

十进制转二进制

#include <stdio.h>
#include <windows.h>
int main ()
{
   SetConsoleOutputCP(65001);
   long long a;
   printf("请输入十进制:");
   scanf("%lld",&a);
   int remainder=0;
   int endVal=0;
   int i=1;
   while(a!=0){
      remainder=a%2; 
      
      a/=2;         //
      endVal+=remainder*i; //1*2^0=1;  任何数的0次方是1   
      i*=10;
   }
   printf("%d",endVal);
      //假设输入11
      // 11%2 1,  11/2= 5(因为int类型只保留整数) 
      //5%2   1,  5/2=2,
      //2%2   0,   2/2=1;
      //1%2   1,   1/2=0.5(int型只保留小数点前面那位整数) =0 
      //while(a!=0) 所以停止循环 得到 1101

}

 其他进制就该变下面这两个就可以了

//八进制
remainder=a%8;
a/=8;         //
//十六进制
remainder=a%16;
a/=16;         //

八进制转二进制 就先把   

八进制转十进制、然后十进制转二进制就可以了。 

输入的字符串翻转

#include <stdio.h>
#include <windows.h>
void reverseSentence(){
   char c;
   scanf("%c",&c);
   if(c!='\n'){
      reverseSentence();
      printf("%c",c);
   }
}
int main ()
{
   SetConsoleOutputCP(65001);
   char c;
   printf("请输入与字符串:");
   reverseSentence();
}

 自定义变量的字符串翻转

#include <stdio.h>
#include <windows.h>

int main (){
   SetConsoleOutputCP(65001);
   char a[]={'h','e','l','l','o'};
   char aSize=sizeof(a)/sizeof(*a);
   char p[5];
   int b=0;
   //逻辑
   for(int i=aSize-1;i>=0;i--){
      p[b]=a[i];
      b++;
   }
   //输出
    for(int i=0;i<aSize;i++){
     printf("%c",p[i]);
   }
}

 字符串长度

 

#include <stdio.h>
#include <windows.h>

int main (){
   SetConsoleOutputCP(65001);
   char a[1000];
   printf("请输入字符串:");
   scanf("%s",a);
   int aSize=strlen(a);
   printf("%s的字符串长度为:%d",a,aSize);
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【项目管理】ubuntu2204 图片合成视频

ubuntu 22.04 多张图片合成视频&#xff0c;多个视频合成一个大视频 环境&#xff1a; ubuntu 22.04 LTS 工具&#xff1a; ffmpeg ffmpeg 多张图片合成视频 在 ubuntu 下全选目录下的所有文件&#xff0c;右键 rename, 选择 1,2,3,4 即可&#xff1b;当然也可以使用其他命名方…

uni-app 中模拟器真机运行app

之前打包过app&#xff0c;调试方式是用usb连接电脑和手机&#xff0c;过程中也遇到了很多问题&#xff0c;忘记了怎么解决的&#xff0c;今天又遇到了打包app的项目&#xff0c;因为在开发app这方面经验不足&#xff0c;所以踩了很多坑&#xff0c;花了好几个小时才研究好app在…

学系统集成项目管理工程师(中项)系列06a_信息系统安全管理(上)

1. 信息安全 1.1. 保护信息的保密性、完整性、可用性 1.2. 另外也包括其他属性&#xff0c;如&#xff1a;真实性、可核查性、不可抵赖性和可靠性 2. 信息安全属性及目标 2.1. 保密性(Confidentiality&#xff09; 2.1.1. 信息不被泄露给未授权的个人、实体和过程或不被其…

【python】统计代码行数 | 统计当前文件夹里所有代码文件的行数

背景 写了一堆.cs文件 想看看一共写了多少行 代码 import os import chardet# Check if a file has the given extension def has_extension(file, extension):return os.path.splitext(file)[1] extension# Count the number of non-empty lines in a file def count_line…

拍照时脸背光怎么办?拍摄的逆光人像照如何修复才能更好看?

拍摄逆光人像会产生迷人的轮廓光&#xff0c;发丝看起来会很美丽&#xff0c;并可能拍到好看的星芒&#xff0c;但是&#xff01;直接拍摄很可能经常会对不上焦&#xff0c;或者会拍出大黑脸&#xff0c;这时就需要很多技巧啦。 完成一张好的逆光照片需要前期拍摄和后期修图相…

生成式模型与辨别式模型

分类模型可以分为两大类:生成式模型与辨别式模型。本文解释了这两种模型类型之间的区别&#xff0c;并讨论了每种方法的优缺点。 辨别式模型 辨别式模型是一种能够学习输入数据和输出标签之间关系的模型&#xff0c;它通过学习输入数据的特征来预测输出标签。在分类问题中&…

Revit相关问题:符号线,转转问题,生成三维视图

一、Revit符号线如何画粗一些?如何自定义符号线子类别? 1、Revit在族里面符号线的粗细、显示颜色、显示线型为符号线的子类别控制! 你可以通过&#xff0c;管理选项卡新建子类别&#xff0c;然后在画符号线的时候应用该子类别! 新建符号线对象样式 应用子类别 二、Revit三维模…

YOLOv7+单目跟踪

YOLOv7单目跟踪 1. 目标跟踪2. 测距模块2.1 设置测距模块2.2 添加测距 3. 实验效果 相关链接 1. YOLOv5单目测距&#xff08;python&#xff09; 2. YOLOv7单目测距&#xff08;python&#xff09; 3. 具体效果已在Bilibili发布&#xff0c;点击跳转 1. 目标跟踪 用yolov7实现…

Moviepy模块之视频添加图片水印

文章目录 前言视频添加图片水印1.引入库2.加载视频文件3.加载水印图片4.缩放水印图片大小5.设置水印的位置5.1 相对于视频的左上角5.2 相对于视频的左下角5.3 相对于视频的右上角5.4 相对于视频的右下角5.5 相对于视频的左中位置5.6 相对于视频的正中位置5.7 相对于视频的右中位…

【设计模式】23种设计模式之结构型模式

一、适配器设计模式 1、是什么&#xff1f; 1、适配器模式将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;主要的目的是兼容性&#xff0c;让原本因接口不匹配不能一起工作的两个类可以协同工作 2、适配器模式属于结构型模式 3、主要分为三类&#xff1a;类适配…

【机器学习】EM原理和K-mean聚类

一、教程说明 EM算法就是expect maxmise算法&#xff0c;就是“期望最大化”的缩写。本篇首先提出&#xff1a;1 什么是期望&#xff1f; 2 期望最大化是个啥意思&#xff1f;k-mean聚类中如何用EM算法&#xff1f; 所涉及的概念&#xff1a; 期望 期望的加权平均理解 概率…

工业网关开发:IxCahriot测试吞吐量

吞吐量测试可以确定被测试设备或被测试系统在不丢弃包的情况下&#xff0c;设备或系统能够接受并转发的最大有效数据。在测试中以一定的速率发送一定数量的帧&#xff0c;并计算待测设备接收的帧&#xff0c;如果发送的帧与接受的帧数量相等&#xff0c;那么就将发送速率提高并…

ASEMI代理ADA4940-1ACPZ-R7原装ADI车规级ADA4940-1ACPZ-R7

编辑&#xff1a;ll ASEMI代理ADA4940-1ACPZ-R7原装ADI车规级ADA4940-1ACPZ-R7 型号&#xff1a;ADA4940-1ACPZ-R7 品牌&#xff1a;ADI/亚德诺 封装&#xff1a;LFCSP-16 批号&#xff1a;2023 引脚数量&#xff1a;16 安装类型&#xff1a;表面贴装型 ADA4940-1ACPZ-…

ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据

作者&#xff1a;Jeff Vestal 结合 Elasticsearch 的搜索相关性和 OpenAI 的 ChatGPT 的问答功能来查询你的数据。 在此博客中&#xff0c;你将了解如何使用 Elasticsearch 将 ChatGPT 连接到专有数据存储&#xff0c;并为你的数据构建问答功能。 什么是聊天 GPT&#xff1f; …

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的对数Log变换算法增强(C#)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCVSharp实现图像的对数Log变换算法增强&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机使用图像算法增加图像的技术背景Baumer工业相机通过BGAPI SDK联合OpenCV使用图像增强算法1.引用合适的类文件2.BGAPI SDK在图像…

ASEMI代理ADI亚德诺ADA4940-1ACPZ-R7车规级芯片

编辑-Z ADA4940-1ACPZ-R7芯片参数&#xff1a; 型号&#xff1a;ADA4940-1ACPZ-R7 −3 dB小信号带宽&#xff1a;260 MHz −3 dB大信号带宽&#xff1a;25 MHz 0.1dB平坦度的带宽&#xff1a;14.5 MHz 斜率&#xff1a;95 V/s 超速恢复时间&#xff1a;86 ns 输入电压噪…

【数据结构】堆的应用(堆排序的实现 + (向上/向下)建堆时间复杂度证明 + TopK问题(笔记总结))

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;数据结构 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&…

Redis高可用之3种集群方案对比

Redis集群方案使用建议&#xff1a; Redis cluster&#xff1a;除非是1000个节点以上的超大规模集群&#xff0c;优先考虑使用Redis clustercodis&#xff1a;旧项目如果仍在使用codis&#xff0c;可继续使用&#xff0c;但也推荐迁移到Redis clustertwemproxy&#xff1a;不建…

什么是数字化?企业为什么要数字化转型?

什么是数字化&#xff1f;企业为什么要数字化转型&#xff1f; 深度长文&#xff0c;4000字&#xff0c;融合了很多国内外专业期刊观点&#xff0c;一文讲清到底什么是企业数字化转型&#xff1f;心急的小伙伴可以先看目录&#xff1a; 关于定义——到底什么是“数字化转型”…

Ubuntu18.04通过一根网线与树莓派建立连接,远程操作树莓派,向树莓派传文件

文章目录 前言1 树莓派设置静态IP1.1 不能登录到树莓派的图形化界面1.2 可以登录到树莓派的图形化界面 2 PC端的ubuntu18.04设置静态ip地址2.1 不使用图形化界面操作2.2 使用图形化界面进行操作 3 Putty软件3 FileZilla软件 前言 本篇博客的应用场景&#xff0c;前提条件如下&a…