
C语言
晨光微雨
坚持就是胜利✌
展开
-
给出一个数:(1)求解有几位数,(2)分别输出每一位数字(3)按逆序输出各位数字
目录(1)求解有几位数(2)分别输出每一位数字(3)按逆序输出各位数字(1)求解有几位数#include<stdio.h>unsigned int GetFigures(int n){ unsigned int figures = 0; while(n!=0) { n /= 10; figures++; } return figu...原创 2019-08-02 17:15:48 · 416 阅读 · 0 评论 -
求Sn = a+aa+aaa+...+aaaaaa(n个a),其中a是一个数字,n代表a的位数,例如 2+22+222+2222+22222(此时n=5),n由键盘输入。
求Sn = a+aa+aaa+...+aaaaaa(n个a),其中a是一个数字,n代表a的位数,例如 2+22+222+2222+22222(此时n=5),n由键盘输入。#include<stdio.h>#include<math.h>//通过a和n构造aa...a这样的数字static int GetNum(int a,int n){ int tmp =...原创 2019-08-16 00:08:46 · 756 阅读 · 0 评论 -
水仙花数
输入所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153 = 1^3+5^3+3^3。#include<stdio.h>#include<math.h>bool IsFlower(int n){ int sum = 0; int m = n; int tmp; while(n !...原创 2019-08-16 00:00:52 · 130 阅读 · 0 评论 -
函数值的交换
《函数值的交换》交换函数的几种方式:(1)//errorintSwap1(inta,intb){inttmp;tmp = a;a= b;b= tmp;return0;}在函数Swap1中,a和b的地址的值并没有交换。只是把10和20赋给了a和b,a和b原本的值并没有改变。(2)#include<stdio.h>...原创 2018-07-11 22:57:45 · 919 阅读 · 0 评论 -
求解n进制
例:假设在n进制下,下面的等式成立,567*456=150216,n的值是(D)A.9 B. 10 C. 12 D. 18第一步(1)先把这个式子化成N进制的表达式(5n^2+6n+7)*(4n^2+5n+6)=20n^4+49n^3+88n^2+71n+42=n^5+5n^4+2n^2+n+6(2...原创 2018-07-11 22:55:33 · 362 阅读 · 0 评论 -
strlen函数strcpy函数strcat函数的实现
一、strlen函数作用:计算字符串第一次碰到'\0'的长度,不包含'\0'。#include<stdio.h>#include<assert.h>int Strlen(const char * str)//const的作用是不改变str字符数组{ assert(str != NULL); if(str == NULL) { return NUL...原创 2020-03-15 12:16:55 · 357 阅读 · 0 评论 -
斐波那契数列 && 青蛙跳台阶 && 变态跳台阶
目录一、斐波那契数列二、青蛙跳台阶问题三、变态跳台阶一、斐波那契数列题目:写一个函数,输入n,求斐波那契数列的第n项。思路:用递归的方法,f(n) =f(n-1) + f(n-2)。代码比较简单。#include<iostream>using namespace std;int Fibonacci(int n){ if(n <= 0) {...原创 2020-03-15 12:17:29 · 251 阅读 · 0 评论 -
将字符转换成数字(atoi),将数字转换成字符(itoa)
目录一、将字符转换为数字。二、将数字转换成字符。一、将字符转换为数字。(首先字符必须是"0" —"9",然后转换成十进制的数字)比如将"1234" 转换成 1234#include<stdio.h>#include<stdlib.h>#include<assert.h>#include <locale>int...原创 2020-03-15 12:18:11 · 1607 阅读 · 0 评论 -
替换空格
目录一、一个换多个(1)原数组的长度大于替换后的长度。(2)原数组的长度小于替换后的长度,需要额外创建一个数组保存替换后字符串。二、多个换一个三、拓展字符串替换有两种情况,一种是把一个空格换成多个字符,另一种是把多个空格换成一个空格。一、一个换多个题目:请实现一个函数,把字符中的每个空格替换成"%20".(1)原数组的长度大于替换后的长度。思路:额外定义一个...原创 2020-03-15 12:18:25 · 310 阅读 · 0 评论 -
魔方阵(奇数,单偶,双偶)
目录一、奇数二、双偶三、双偶魔方阵,是指组成元素为自然数1、2、…、n2的平方的n×n的方阵,其中每个元素值都不相等,且每行、每列以及主、副对角线上各n个元素之和都相等。魔方阵的规律一、奇数阶数为奇数n(n = 1,3,5...)(1)将1放在第一行中间一列。(2)从2开始到n*n,每一个数存放的行在之前一个数的行数减1,列数加1。如果当前数字在第一行,那么下一个...原创 2019-07-28 18:17:56 · 2239 阅读 · 1 评论 -
共用体/联合体
共用体(联合体):在同一个存储空间存储不同数据的类型。1、共用体的大小大于等于其最长成员的大小。union A { char a; short b; int c; }; union A u1; printf("%d",sizeof(u1));得出的结果为4(int)。2、共用体的同一个内存块里可以用来存储不同的数据类型的成员。union A u1;...原创 2019-07-26 18:18:38 · 795 阅读 · 0 评论 -
计算结构体的大小
结构体是用户建立由不同类型数据组成的组合型数据结构。结构体的大小不是简单地数据类型的相加,而是需要考虑到系统在存储结构体变量时的地址对齐问题。(1)结构体成员或者加上偏移量必须是下一个成员大小的整数倍(2)结构体大小必须是最大成员大小的整数倍struct A{ int a; //4 float b;//4};//8int类型占4个字节,刚好是float类型的...原创 2019-07-26 17:28:58 · 274 阅读 · 0 评论 -
指针在数组里的加法
在C语言中,指针与数组经常放在一起使用,很多情况下数组和指针可以互相转换。 //伪代码 int arr[10] = {0,1,2,3,4,5,6,7,8,9}; int * p = arr; arr[i] == * (p+i);//i是大于0小于数组长度-1的任何正整数 *(arr+1) == arr[i];数组和指针的不同:(1)大小不同。(2)指针可以...原创 2019-07-26 16:46:43 · 1366 阅读 · 0 评论 -
printf函数输出多个printf 、前置加加或者后置加加
目录(1)前置加加和后置加加的区别(2)printf输出前置加加(3)printf输出后置加加(4)printf输出printf(1)前置加加和后置加加的区别首先我们先来了解一下前置加加和后置加加的区别。前置加加在编译器里的操作//++aint a = 0;a = a + 1;return a;前置加加是先加一,后赋值,返回的值是加一之后的值。后置加...原创 2019-08-21 16:20:27 · 4271 阅读 · 1 评论