C语言百日刷题第二天

  • 11. 统计输入数据的正负个数
  • 12.学生基本信息输入输出
  • 13.杨辉三角的前n行
  • 14.模拟用户登录情景
  • 15.演示多个字符从两端移动,向中间汇聚
  • 16.计算短信费用
  • 17.编写函数不允许创建临时变量,求字符串的长度
  • 18.汉诺塔问题
  • 19.走台阶问题
  • 20.兔子的序列

11. 统计输入数据的正负个数


题目分析:判断输入10个数的正负数个数,利用分支语句判断正负再让代表正负个数的变量加一即可。

#include<stdio.h>
int main()
{int a = 0,z=0,i=0,f=0;for (i = 0; i < 10; i++){scanf("%d", &a);if (a < 0)f++;if (a >= 0)z++;}printf("positive:%d\n", z);printf("negative:%d\n", f);return 0;
}

12.学生基本信息输入输出


题目分析:题目不难,主要是考数据类型。

int类型,存储大小2或4字节,值范围-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
long类型,存储大小4字节,值范围-2,147,483,648 到 2,147,483,647
float类型,存储大小4字节,值范围1.2E-38 到 3.4E+38,精度可达小数点后六位

#include <stdio.h>
int main()
{int num = 0;float c_score = 0.0;float math_score = 0.0;float eng_score = 0.0;scanf("%d;%f,%f,%f", &num, &c_score, &math_score, &eng_score);printf("The each subject score of No. %d is %.2f, %.2f, %.2f.\n", num, c_score, math_score, eng_score);return 0;
}

13.杨辉三角的前n行


题目分析:
杨辉三角:两条斜边都是由数字1组成,其余的数则是等于上一行左右两个数字之和。

#include <stdio.h>
int main()
{int n=0;int arr[30][30];int i=0,j=0;scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<=i;j++){if(j==0||i==j){arr[i][j]=1;printf("%5d",arr[i][j]);}else{arr[i][j]=arr[i-1][j-1]+arr[i-1][j];printf("%5d",arr[i][j]);}}printf("\n");}return 0;
}

14.模拟用户登录情景

模拟用户登录情景,并且只能登录三次,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。

题目分析:

对比密码需要运用比较函数。两个字符串比较不能用==应该使用strcmp(字符串比较函数)
strcmp是字符串比较函数,字符串比较必须用比较函数! stramp需要引头文件#include<string.h>

#include<stdio.h>
#include<string.h>
int main()
{int i = 0;//假设正确密码是123456char password[20] = { 0 };for (i = 0; i < 3; i++){printf("请输入密码:");scanf("%s", password);if (strcmp(password, "123456") == 0){printf("登录成功!");break;}else{printf("密码错误,请重新输入\n");}}if (i == 3){printf("三次密码均错误,退出程序。");}return 0;
}

15.演示多个字符从两端移动,向中间汇聚

题目分析:
用两个数组,分别存放第一组字符和第二组字符。
接着将两个数组分别进行替换,起始位置+1,结束位置-1,利用while循环再一次次替换。

#include<stdio.h>
#include<string.h>
#include<windows.h>
int main()
{char arr1[] = "welcome to China!!!!";char arr2[] = "####################";int left = 0;int right = strlen(arr1) - 1;//strlen求字符长度while (left <= right){arr2[left] = arr1[left];arr2[right] = arr1[right];printf("%s\n", arr2);Sleep(1000);left++;right--;}return 0;
}

16.计算短信费用

#include<stdio.h>
int main()
{int n;scanf("%d",&n);int arr[20];double count=0;for(int i=0;i<n;i++){scanf("%d",&arr[i]);}for(int i=0;i<n;i++){if(arr[i]<=60)count +=0.1;elsecount +=0.2;}printf("%.1lf",count);return 0;
}

17.编写函数不允许创建临时变量,求字符串的长度

题目分析:不允许创建临时变量,只能使用函数递归。

#incude <stdio.h>
int Strlen(const char*str)
{if(*str == '\0')return 0;elsereturn 1+Strlen(str+1);
}
int main()
{char *p = "abcdef";int len = Strlen(p);printf("%d\n", len);return 0;
}

18.汉诺塔问题

汉诺塔问题源自印度一个古老的传说,印度教的“创造之神”梵天创造世界时做了 3 根金刚石柱,其中的一根柱子上按照从小到大的顺序摞着 64 个黄金圆盘。梵天命令一个叫婆罗门的门徒将所有的圆盘移动到另一个柱子上,移动过程中必须遵守以下规则:
● 每次只能移动柱子最顶端的一个圆盘;
● 每个柱子上,小圆盘永远要位于大圆盘之上;

#include <stdio.h>
void hanoi(int num, char sou, char tar,char aux) {//统计移动次数static int i = 1;//如果圆盘数量仅有 1 个,则直接从起始柱移动到目标柱if (num == 1) {printf("第%d次:从 %c 移动至 %c\n", i, sou, tar);i++;}else {//递归调用 hanoi() 函数,将 num-1 个圆盘从起始柱移动到辅助柱上hanoi(num - 1, sou, aux, tar);//将起始柱上剩余的最后一个大圆盘移动到目标柱上printf("第%d次:从 %c 移动至 %c\n", i, sou, tar);i++;//递归调用 hanoi() 函数,将辅助柱上的 num-1 圆盘移动到目标柱上hanoi(num - 1, aux, tar, sou);}
}

19.走台阶问题

题目分析:第18题、第19题是经典的斐波那契系题目。

#include <stdio.h>int main()
{int arr[31]={0,1,2,3},n,i;scanf("%d",&n);for(i = 4;i<=n;i++){arr[i] = arr[i-1] + arr[i-2];}printf("%d",arr[n]);return 0;
}

20.兔子的序列

#include <stdio.h>
#include <math.h>
int main()
{int max = -1, len, n;scanf("%d", &len);for(int i = 0; i < len; i++){scanf("%d", &n);max = (pow((int)sqrt(n), 2) != n) && max < n? n : max;}printf("%d", max);return 0;
}

C语言百日刷题第二天相关推荐

  1. C语言百日刷题第十三天

    前言 今天是刷题第13天,放弃不难,但坚持一定很酷~ 临近期末,再刷一套模拟题 C语言百日刷题第十三天 前言 选择题 判断题 编程题 选择题 1.若由定义int*p1,*p2,m=5,n;以下赋值语句 ...

  2. C语言百日刷题第五天

    C语言百日刷题第五天 41.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定 42.实现一个函数来交换两个整数的内容. 43.实现一个函数来进行整型有序数组的二分查找 44.接收一个无符号整型 ...

  3. C语言百日刷题第十天

    前言 今天是刷题第10天,放弃不难,但坚持一定很酷~ 快来跟我一起刷题吧. C语言百日刷题第十天 前言 81.连接两个字符串 82.输入一行字符,分别统计其中英文字母.空格.数字和其他字符的个数. 8 ...

  4. C语言百日刷题第七天

    C语言百日刷题第七天 61. 写一个函数isPowerOfTwo判断是不是2的幂次方 62. 写一个函数isPowerOfThree判断是不是3的幂次方 63.n 的第 k 个因子 64.有效的完全平 ...

  5. C语言百日刷题第八天

    前言 今天是刷题第8天,放弃不难,但坚持一定很酷~ 快来跟我一起刷题吧. 刷题第八天目录 前言 71.打印7层杨辉三角形 72.重新排列数组 73.冒泡排序 74.将数字变成0的操作次数 75.四叶玫 ...

  6. c语言百日刷题第四天

    目录 1.用筛选法求100之内的素数 2.用选择法对10个整数排序 3.求一个3*3的整型矩阵的对角线之和 4.有一个已排序好的数组,要求输入一个数后,按原来排序的规律将它插入数组中 5.将一个数组中 ...

  7. C语言百日千题系列之《忘情水题》第一日

    目录 绪论 1.最大数位置 2.与指定数字相同的数的个数 3.蓝桥杯2013年第四届真题-核桃的数量 4.求所给范围内水仙花数并排列 5.最大值和最小值的差 6.计算书费 7.角谷猜想 8. 最高的分 ...

  8. 嵩天-Python语言程序设计程序题--第二周:基本图形绘制

    前言:嵩天老师的<Python语言程序设计课程>被评为国家精品课程,在幕课上累计超过11万学员,里面的习题对初学者入门Python,提高编程实战能力很有帮助.因此,我想把自己学习这门课程作 ...

  9. 求二叉树高度_LeetCode刷题——第二十五天(平衡二叉树)

    这段时间跟二叉树杠上了,接下来还有许多二叉树的题目,虽然已经做了不少了,大多题目都涉及到了递归,也挺好,刚好有机会练习一下递归,但是遇到新的题目还是有点力不从心,还需要看参考答案,真希望有一天像汤神一 ...

最新文章

  1. DateChooser控件发布ASP.NET 2.0新版(我的ASP.NET 2.0控件开发书的第二个阶段项目)[请大家一定注意版本的更新,下载最新版]...
  2. 一种基于FPGA硬件求解对数的简化方法
  3. 通过简单的 ResourceManager 管理 XNA 中的资源,WPXNA(二)
  4. 使用SQL语句的子查询批量复制表数据
  5. 数据分析:销售数据怎么分析?简单概述
  6. 公众号获取access_token失败
  7. #舍得Share#创业你必须知道的事-创业融资实战
  8. java robot 游戏_JAVA制作游戏脚本(1)---Robot机器人
  9. ih5长图如何滑动_iH5中级教程:微场景H5必备,横向滑动切换
  10. unity 关闭所有日志输出
  11. 企业为什么要选择人力外包?好处与坏处
  12. Google学术的使用指南
  13. 以本职工作为挡箭牌推托,久而久之,你就只能原地踏步。
  14. GitHub上传项目以及修改(仅供自己记录学习)
  15. RadosClient OSDC
  16. 【转】python获取计算股票技术指标DIF/DEA/MACD
  17. LVSKeepalived—集群、负载均衡、企业高可用详解
  18. 思科计算机网络ppt,【思科网络课件】计算机网络双语教程第五章.ppt
  19. 基于STM32的安卓蓝牙多功能遥控车
  20. 云课堂智慧职教答案python_智慧职教云课堂Python程序设计答案

热门文章

  1. 30秒完成工作?终于知道Python这个技能有多重要!
  2. 【win10休眠后几分钟内自动开机的一种解决方法】
  3. 解决Lombok版本过低导致的编译出错问题(You aren‘t using a compiler supported by lombok)
  4. 伊拉克(Iraq)vs 沙特(Saudi Arabia) 成都-伊拉克的主场!
  5. php调用python程序的五种方法及详解
  6. 有一个函数 y={  x      x<1     |  2x-1   1<=x<10     { 3x-11  x>=10 写一段程序,输入x,输出y
  7. 车联网永远不乏追风者
  8. STM32入门笔记03_EXTI外部中断详解+案例:红外对射计数、旋转编码器计数
  9. 无线网络、移动感知与计算领域的前沿学者
  10. 2019考研浙大计算机经验帖