
C 常见编程题
文章平均质量分 62
susan19890313
这个作者很懒,什么都没留下…
展开
-
可扩展的数列排序
#include#include/*问题描述:从键盘输入任意个整数,以0作为结束标志。对这个整数序列进行排序并输出排序后的结果。问题分析:题目要求从键盘输入任意个整数,因此在数据的组织上就不能使用数组了。因为数组的内存分配是在编译时完成的,即在编写代码时就指定数组的大小。 从键盘输入任意个整数,就是说要分配的内存空间的大小是不固定的,需要在程序执行时根据实际输转载 2012-04-08 10:38:49 · 885 阅读 · 0 评论 -
二路归并排序
#includevoid sort(int a[],int,int,int);void MergeSort(int a[],int ,int);int main(){ int a[8],i; printf("请输入8个整数\n"); for(i=0;i<8;i++) scanf("%d",&a[i]); MergeSort(a,0,7); p原创 2012-05-03 16:15:54 · 598 阅读 · 0 评论 -
字符串和数字的互换
一、将字符形式的数字转化为整型数字/* 问题描述:实现函数 int atoi(const char *str)的功能 *函数atoi将字符形式的数字转换为整型。 *例如:输入:若干空格或tab或换行符 123g,123.46,-123,ab * 输出:123,123,-123,0。即若首个非空字符为非法字符即不是数字字符,则返回0. */#include st原创 2012-05-02 10:09:31 · 901 阅读 · 0 评论 -
删除一个字符串中连续的空格
//问题描述:给定一个字符串,如果字符串中存在连续多个空格则用一个空格代替.例如:输入:ab--cd-ef---g 输出:ab-cd-ef-g,为了方便,用-代替空格//解决问题:写两个循环...第一个循环读到空格就使用第二个循环判断连续空格的数量..在第二个循环中一旦一个字符不是空格,就跳出本循环。然后根据空格//数量移动字符#include#includevoid Remo原创 2012-04-13 10:47:03 · 6011 阅读 · 1 评论 -
用一个表达式而不是一个循环语句 判断一个数X是否是2的N次方(2,4,8,16......)
可以发现:2,4,8,16.......的二进制分别为10,100,1000,10000.....所以如果X减1后与X做按位与运算的结果为0,或者如果X减1后与X做按位或运算的结果为1,那么X是2的N次方。原创 2012-04-10 21:52:57 · 3152 阅读 · 0 评论 -
连接两个字符串
//问题描述:实现库函数strcat的功能即将两个字符串连接起来#includechar* str_catenate(char* str1,char* str2);int main(void){ char str1[200],str2[100]; printf("请输入要连接的两个字符串\n"); scanf("%s%s",str1,str2); printf(原创 2012-04-09 20:40:17 · 6667 阅读 · 0 评论 -
字符串循环移位
//问题描述:对字符串进行循环移位。例如: 字符串abcde循环右移一位为eabcd,右移两位为deabc;左移两位为cdeab#includechar* cycle_shift(char *c,int n,int flag);//对字符串c进行循环移动n位,flag=1右移,flag=0左移int main(){ char a[100],b[100]; int原创 2012-04-10 08:39:15 · 3248 阅读 · 0 评论 -
求字符串中数字之和
//问题描述:任意给定一个字符串,求字符串中含有的所有数字的和。例如:ac38dd9d 结果为:3+8+9=20#includeint sum(char* c);int main(void){ char a[100]; printf("请输入任意一串字符\n"); scanf("%s",a); printf("该串字符中的数字之和为:%d\n",sum(a))原创 2012-04-09 20:04:03 · 4128 阅读 · 0 评论 -
近似证明哥德巴赫猜想
#include/*哥德巴赫猜想(Goldbach Guess)就是说任何一个大于2的偶数都能表示成两个素数之和。*/int IsPrime(int a);int IsGoldBach(int a);int TestifyGB_Guess(int low,int high);int main(void){ int a,b; printf("请输入一个范围:"转载 2012-04-08 10:28:45 · 935 阅读 · 0 评论 -
百钱买百鸡问题
/*问题描述:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;白钱买百鸡,则翁,母,雏各几何?*//*分析问题:设鸡翁,鸡母,鸡雏各为x,y,z. 那么x,y,z需满足:5x+3y+z/3=100,x+y+z=100,0=<x,y,z<=100,x,y,z为整数,z为3的倍数。*//*解决方法:穷举出x,y,z所有可能的取值,如果满足以上方程组,则输出结果*/转载 2012-04-08 10:31:16 · 913 阅读 · 0 评论 -
求两个数的最大公约数
#includeint MaxElem(int,int);int main(void){ int a,b; printf("请输入两个整数:"); scanf("%d%d",&a,&b); printf("%d %d 的最大公约数是:%d\n",a,b,MaxElem(a,b));}int MaxElem(int a,int b){//假设a,b的最转载 2012-04-08 10:18:24 · 409 阅读 · 0 评论 -
打印九九乘法表
一、问题描述 用C编程输出下图的九九乘法表 二、问题分析 经分析发现:第i行有i列。第i行的第j个等式的被乘数等于j,乘数等于行数i。三、实现代码#includevoid PrintMulTab();int main(void){ printf("下面将打印九九乘法表:\n"); PrintMulTab(); return转载 2012-04-08 09:40:03 · 2295 阅读 · 0 评论 -
输出指定范围内的阿姆斯特朗数
如果一个正整数等于其各位数字的立方和,那么称这个数为阿姆斯特朗数。例如:407=4^3+7^3。 #includeint IsArmStrong(int);void PrintArmStrong(int,int);int main(void){ int a,b; printf("请输入寻找阿姆斯特朗数的范围:"); scanf("%d%d",&a,&b);转载 2012-04-08 10:23:55 · 1627 阅读 · 0 评论 -
打印三角座
一、问题描述 用C编程打印出如下图所示的三角座 二、问题分析 像这种要求打印某种特殊图形的题,首先要分析该图形的特点和规律。 经分析可知:第1行有一个*;第2行有3个*;第3行有5个*。所以第i行有(2*i-1)个*。最后一行从一行开头就开始打印*,倒数第二行空一格开始打印*,倒数第三行空两格开始打印*......所以假设共有n行,那么第i行需转载 2012-04-08 09:29:05 · 825 阅读 · 0 评论 -
判断回文数字
一、问题描述 回文就是正着读和倒着读一样。 判断给定的一个整数是不是回文。例如123不是回文数字,而123321是回文数字二、问题分析 首先求出整数逆转后的数,如果逆转后的数和原来的整数相同则该整数是回文数字。例如123逆转后的数是321,所以123不是回文数字。 二、实现代码 #includeint Reverse (int);转载 2012-04-08 10:05:59 · 639 阅读 · 0 评论 -
输出指定范围内的素数
一、素数,合数 素数又称为质数,是指在大于1的整数中,只能被1和其本身整除的数。 合数:在大于1的整数中不是素数的数。 1既不是素数也不是合数。二、实现代码 通常用穷举法列出指定范围内的素数。 #includeint IsPrime(int n);void PrintPrimes(int,int);int main(转载 2012-04-08 09:50:59 · 8003 阅读 · 1 评论 -
爱因斯坦阶梯问题
/*问题描述:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶; 只有每步上7阶,最后刚好一阶也不剩。问题分析:设长阶供x阶,那么 x%2=1 x%3=2 x%5=4 x%6=5 x%7=0 即求满足要求的最小的x,可用穷举的方法。因为x%7=0,所以阶梯数必须为7的倍数;*/#include转载 2012-04-08 10:42:20 · 5391 阅读 · 0 评论 -
八皇后问题
/*问题描述:如何在一个8*8的棋盘上无冲突的摆放8个皇后棋子。要求:皇后棋子所在的位置的水平方向,垂直方向,45度斜线方向都不能出现皇后棋子。 求出所有符合要求的摆放方法。解决方法:采用递归的方法。(其他如回溯法,穷举法,概率算法又叫拉斯维加斯算法),用8*8的0—1矩阵表示棋盘,1表示皇后棋子,0代表空。*/#includeint count=0;//原创 2012-05-03 17:05:22 · 1468 阅读 · 0 评论