在排序数组中,找出给定数字出现的次数比如{ 1, 2, 2, 2, 3}中2的出现次数是3次 我们可使用二分查找发,分别查找出2最先出现的位置和最后出现的位置相减即可. 下面是上代码: #include <stdio.h> //二分法获取元素最后出现的位置,可能在元素的下一位 int GetHigh(int array[], int size, int key) { int low = 0, high = size - 1; while (low < high) { int mid =…
请用C语言实现 输入N,打印N*N矩阵 比如 N = 3, 打印: 1 2 3 8 9 4 7 6 5 N = 4, 打印 1   2    3   4 12  13   14  5 11  16   15  6 10  9    8   7 启动2012 输出结果 #include <stdio.h> #include <stdlib.h> #define M 5 int arr[M][M] = { 0 }; //初始化数组全0 ,用0来判断数组是否赋有正确的值 void Hui…
请用C语言实现 输出和为一个给定整数的所有组合 启动2012 /* 请用C语言实现 输出和为一个给定整数的所有组合 */ #include <stdio.h> //包含头文件stdio.h 为程序提供基本输入输出功能 #include <stdlib.h> //包含标准库头文件stdlib.h 以便调用函数system("pause") 使程序暂停 int main(void) { int num = 0; //获取输入的数字 int i = 0; //外层循环…
用变量a给出下面的定义    a)一个整型数    b)一个指向整型数的指针    c)一个指向指针的指针,它指向的指针是指向一个整型数    d)一个有10个整型数的数组    e)一个有10个指针的数组,该指针是指向一个整型的数    f)一个指向有10个整型数数组的指针    g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数    h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数 答案:        a) int a; b) int * a…
第二部分程序结果分析,分析流程还是写入代码注释中 分析下面程序的输出: #include <stdio.h> int main() { char *a = "hello"; char *b = "hello"; if (a == b) printf("YES"); else printf("NO"); //由于a.b指针指向的常量字符串相同,编译器为了节省空间, //将a.b指针变量都指向了hello字符串所在的内…
分析程序结果,分析过程我们就写在程序注释里面. 写出下列代码的输出内容 #include <stdio.h> int inc(int a) { return (++a); } int multi(int *a, int *b, int *c) { return (*c = *a * *b); } typedef int (FUNC1)(int in); typedef int (FUNC2)(int *, int *, int *); void show(FUNC2 fun, int arg1…
清写出下列代码的输出内容 #include <stdio.h> int main() { int a = -1, b = -12, c = -123, d = -1234; printf("%d,%d,%d,%d,%u,%u,%u,%u\n", a, b, c, d, a, b, c, d); printf("%o,%o,%o,%o,%x,%x,%x,%x\n", a, b, c, d, a, b, c, d); return 0; } 并写出计算机在内…
有一分数序列: 1/2 , 1/4 , 1/6 , 1/8 ......,用递归的方法,求此数列20项之和. 可以看出规律:每一项位1/n*2 这个很容易些递归,但是要注意一点,使用浮点数相除保存: 下面上代码: #include <stdio.h> double fun(int i) { //如果是第一项直接返回结果 if (i == 1) return 1.0 / (double)2; return fun(i - 1) + 1.0 / (double)(2 * i);//递归相加 } i…
有一个数组a[1000]存放0-1000,要求每隔二个数删除一个数,到末尾时循环到开头继续进行,求最后一个被删掉数的原始下标. 看到题目可以用循环链表保存这些数,然后循环删除,大大减少了一些复杂的边界判断. 下面上代码,看链表建立和删除的具体过程: #include <stdio.h> #include <stdlib.h> typedef struct stLIST { int index; stLIST *next; }LIST, *PLIST; //创建循环链表 PLIST…
编程实现:找出两个字符串中最大公共子字符串,如"abccade"和"dgcadde"的最大子字符串为"cad". 如果不考虑效率的话直接比较,设置一个指针指向最大公共字符串,一个变量保存最大公共子字符串的长度. 然后用第二个字符串的所有子字符串和第一个字符串的所有子字符串比较,将最大相同子字符串信息保存在上面两个变量中. 下面看代码: #include <stdio.h> #include <string.h> void…