#include<stdio.h>#include<string.h>int Add(int x, int y){ int z = x + y; return z;}int main(){ int a = 0, b = 0; scanf("%d%d", &a, &b); int (*p)(int a, int b) = Add; printf("
请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序答:大端:指数据的低位保存在内存的高地址中 小端:指数据的低位保存在内存的低地址中#include<stdio.h>int check_sys(){ int a=1; char*p=(char*)&a; if(*p==1) return 1; else
写一个递归函数Dig_Sum(n),输入一个非负整数,返回组成它的数字之和。例如,调用Dig_Sum(1729),则应该返回1+7+2+9,它的和是19。输入:1729 输出:19#include<stdio.h>#include<string.h>#define _CRT_SECURE_NO_WARNINGS1int Dig_Sum(
编写一个函数实现n的k次方,使用递归实现#include<stdio.h>#include<string.h>#define _CRT_SECURE_NO_WARNINGS1double Pow(int n, int k){ if (k < 0) return (1.0/ (Pow(n, -k))); else if (k == 0) return
之前我们打印过乘法口诀表,不过那个是9*9乘法表,下面这个是无限制乘法表。#include<stdio.h>#include<string.h>#define _CRT_SECURE_NO_WARNINGS1void print(int n){ int i=0; for(i=1;i<=n;i++)//打印行数 { int j=0; for(j=1;j
#define _CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<string.h>void print(int* p, int sz){ int i = 0; for (i = 0;i < sz;i++) { printf("%d ", *(p + i)); }}int main(){ int arr
题目:获取一个整数二进制序列中所有的奇数位和偶数位,分别打印出二进制序列#include<stdio.h>#include<string.h>#define _CRT_SECURE_NO_WARNINGS1void print(int m){ int i = 0; printf("奇数位:\n"); for (i =30;i>=0;i-=2) { pri
题目内容:编程实现:两个 int (32位)整数m和n的二进制表达中,有多少个位(bit)不同?输入例子:1999 2299输出例子:7#include<stdio.h>#include<string.h>##define _CRT_SECURE_NO_WARNINGS1int get_diff_bit(int m,int n,int count){ in
首先,我们应该知道整数在内存中的存储形式为其补码。#include<stdio.h>#include<string.h>#define _CRT_SECURE_NO_WARNINGS1int main(){ int num = 0; int count = 0; scanf_s("%d", &num); while (num) { if (num %
问题:交换两个数组的内容(数组的大小相同)int main(){ int arr1[] = { 1,3,5,7,9 }; int arr2[] = { 2,4,6,8,0 }; int tmp = 0; int i = 0; int sz = sizeof(arr1) / sizeof(arr1[0]); for (i = 0;i < sz;i++) { tmp = ar
C语言yyds
问题:使用冒泡排序的方法,将数组中的元素按照升序的方式将其排列。冒泡排序核心思想:两两相邻元素进行比较,满足条件则交换; ① 先确认趟数; ② 写下一趟冒泡排序的过程; ③ 最后进行交换;#include<stdi
第一种:效率低,运算慢。#include<stdio.h>#include<string.h>int fib(int n){if(n<=2)return 1;elsereturn fib(n-1)+fib(n-2);}int main(){int n=0;int ret=0;scanf("%d",&n);ret=
#include<stdio.h>#include<string.h>int my_strlen(char *str){int count=0;//计算字符串的长度while(*str!='\0') //递归的条件,应该是if,但是if不能实现循环,所以while{count++;str++;}return count;}in
问题:接受一个整形值(无符号),按照顺序打印它的每一位。例如:输入:1234,输出:1 2 3 4.#include<stdio.h>void print(int n) //注意这里不用返回{if(n>9) //n至少是两位数{print(n/10); }printf("%d ",
#include<stdio.h>void add(int *p) //没有返回值,不用返回{(*p)++; //注意这里涉及运算符优先级,++要优先于,因此 *p++ 不可以}int main(){int num=0;add(&num);printf("%d\n",num);add(&num);printf(
首先,在我们写代码之前先要了解闰年是如何定义的,首先知道如何定义的,再通过算法,将其运用在代码中。闰年:1.可以被4整除,但不可以被100整除或者 2.可以被400整除 。注意:这两个条件必须同时满足。下面,我会采用两种方法第一种:循环的应用其中if语句部分,也可以为:第二种:函数的运用
问题:交换两个整形的数值#include<stdio.h>void swap(int*pa , int*pb){int temp=*pa;*pa=*pb;*pb=temp;}int main(){int a=45;int b=86;printf("a=%d b=%d\n",a,b);swap(&a,&b);//取地址,这里
猜数字游戏#include<stdio.h>void menu() { printf("*******************\n"); printf("***1.进入 0.退出***\n"); printf("*******************\n"); } void game() { printf("
【题目名称】二分查找【题目内容】编写代码在一个整形有序数组中查找具体的某个数要求:找到了就打印数字所在的下标,找不到则输出:找不到。第一种:常规方法,比较复杂,效率低#include<stdio.h>int main(){int i=0;int arr[]={1,2,3,4,5,6,7,8,9,10};int k=8;int sz=sizeof(arr)/siz
#include<stdio.h>int main(){int i=0;for(i=1;i<10;i++) //确定行数{int j=0;for(j=1;j<=i;j++)
【题目名称】求最大值【题目内容】求10 个整数中最大值#include<stdio.h>int main(){int i=0;int arr[]={1,2,3,4,5,6,7,8,9,10};int sz=sizeof(arr)/sizeof(arr[0]);int max=arr[0];for(i=1;i<sz;i++){if(m
【题目名称】分数求和【题目内容】计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果第一种:运用两个for循环 ,整体思路为:1/1+1/3+1/5+.....+1/99 和1/2+1/4+1/6+...+1/100 ,,两者再做减法#include<stdio.h>int main(){int i ,j ;doubl
【题目名称】数9的个数【题目内容】编写程序数一下 1到 100 的所有整数中出现多少个数字9#include<stdio.h>int main(){int i=0; int count=0; for(i=1;i<=100;i++) if(i%10==
问题:打印100---200之间的素数,并得出个数。1.首先我们要了解 “ 素数 (质数)”,就是大于1的自然数,除了1和自身之外没有别的因数。循环解决问题:试除法#include<stdio.h>int main(){int i=0;int count=0;for(i=100;i<=200;i++) //第一个循环{int j=0;//&nb
打印1000----2000 之间的闰年首先先了解闰年怎么定义的:可以被4整除,不可以被100整除;“”或者”可以被400整除第一种:#include<stdio.h>int main(){int year=0;int count=0;//计算闰年的个数for(year=1000;year<=2000;year++){if(year%4==0&&a
给定两个数,求这两个数的最大公约数例如:输入:20 40 输出:20下面我们采用两种方法进行解决第一种:简单理解,但是比较繁琐#include<stdio.h>#include<string.h>int main(){int a,b;scanf("%d%d",&a,&b);if(a%b==0)printf("%d\n",b);else
【题目名称】从大到小输出【题目内容】写代码将三个整数数按从大到小输出。例如:输入:2 3 1输出:3 2 1上面为bit上面的问题。下面我采用两种方法解决问题。第一种:运用了三目运算符#include<stdio.h>int main(){int mid, a,b,c,max,min;scanf("%d%d%d",&a,&b,&c); ma
再次使用循环解决这个问题#include<stdio.h>int main(){int i,n,sum;for(n=1;n<=10;n++){int ret=1;for(i=1;i<=n;n++){ret=ret*i;}sum=sum+ret;}printf("%d\n",sum);return 0;}
#include<stdio.h>int main(){int i=0;int n=0;int ret=1;//这里赋值不能为0,如果为0,求得结果就为0for(i=1;i<=n;i++){ret=ret*i ;//这里也可以写为ret*=i}printf("%d\n",ret);return 0
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号