C语言教学
程序设计基础的教学案例
iamzxf
做有意义的事情......
展开
-
判断几位数,正序和逆序输出
给出一个不多于5位的正整数,要求: ① 求出它是几位数; ② 分别打印出每一位数字; ③ 按逆序打印出各位数字,例如原数为321,应输出123。#include void main(){ int num, num1; int count=0; printf("please input the number:"); scanf("%d原创 2013-11-05 10:57:27 · 1671 阅读 · 0 评论 -
输出互不重复的三位偶数
求出用数字0至9组成的没有重复数字的三位偶数,并以每行10个数输出这些数。 #include void main(){ int num1, num2, num3; int count=0; for(num1=1;num1<10;num1++) { for(num2=0;num2<10;num2++) { if (num2==num1)原创 2013-11-05 11:18:14 · 2155 阅读 · 0 评论 -
花朵数问题
一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数。例如: 当N=3时,153就满足条件,因为 1^3 + 5^3 + 3^3 = 153,这样的数字也被称为水仙花数(其中,“^”表示乘方,5^3表示5的3次方,也就是立方)。 当N=4时,1634满足条件,因为 1^4 + 6^4 + 3^4 + 4^4 = 1634。 当N原创 2013-11-06 12:24:20 · 1082 阅读 · 0 评论 -
数的进制转换
输入一个十进制正整数,将该数转换成n进制数。 #include//输入一个十进制正整数,将该数转换成n进制数int main(){ int num,i,n,count=0; int digit[100]={0}; printf("please input the number:"); scanf("%d",&num); printf("print原创 2013-11-21 10:28:24 · 1216 阅读 · 1 评论 -
数组循环输出
给一维数组输入任意n(n5 7 4 8 9 11 5 7 4 8 99 1 5 7 4 88 9 1 5 7 44 8 9 1 5 77 4 8 9 1 5 #includeint main(){ int array[6]={7,4,8,9,1,5}; int i,j; fo原创 2013-11-21 11:03:42 · 1483 阅读 · 0 评论 -
螺旋矩阵
下面是一个5×5的螺旋方阵,试编程打印出此形式的n×n(n1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9 #include#define N 5//螺旋矩阵int main(){ int count,i,j; int d原创 2013-11-21 10:58:42 · 1326 阅读 · 0 评论 -
13年蓝桥杯校内选拔赛B组试题
14年蓝桥杯程序设计大赛C语言B组测试题原创 2013-11-25 13:04:11 · 2220 阅读 · 0 评论 -
直角三角形的边问题
在直角三角形中,两个直角边的平方和等于斜边的平方,也就是非常著名的“勾股定理”,那么这100以内的数字中,就存在着这样的一些数,比如:3,4,5,3的平方加上4的平方等于5的平方,这三个数就可以组成一个直角三角形。 现在我们要求出这些数(要求相同度数的直角三角形的三条边使用最小值,比如:6,8,10就要变成3,4,5)。原创 2013-11-06 12:19:13 · 1357 阅读 · 0 评论 -
无限循环小数
使用数组精确计算M/N(0<M<N<=100)的值。如果M/N是无限循环小数,则计算并输出它的第一循环节,同时要求输出循环节的起止位置(小数位的序号)。原创 2013-11-06 12:23:03 · 5703 阅读 · 0 评论 -
角谷猜想
日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。 猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。 判断给定的一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,一直到结果变为1,并且将每一步的运算过程和得到的新的自然数显示出原创 2013-11-06 12:21:40 · 5257 阅读 · 0 评论 -
运动员打靶问题
射击运动员m发打中n环有多少种可能,编写程序计算出来,并显示出结果,0环和10环均有效。原创 2013-11-06 12:20:41 · 1363 阅读 · 0 评论 -
数字游戏
栋栋正在和同学们玩一个数字游戏。 游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。下一个同学要往下数三个数,说7。依次类推。 为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k 时,下一个数字重新从1开始数。例如,当k=原创 2013-11-26 11:07:22 · 1090 阅读 · 0 评论 -
求满足条件的回文数字
观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位之和等于输入的整数。 【输入格式】 一个正整数 n(10【输出格式】 若干行,每行包含一个满足要求的5位或6位整数。原创 2013-11-26 10:20:29 · 1160 阅读 · 0 评论 -
大小之差
题目标题: 大小之差 某6位数,只包含1~9中的某些数字(可以重复包含同一数字,但不含数字0)。 该数字重新排列数位后,可以得到最大数和最小数。最大最小之差也是6位数,并且它恰好包含了组成原6位数同样的数字。 比如:766431 - 134667 = 631764 就是具有这样特征的数字。 你还能找到另一个这样的6位数吗?原创 2013-11-26 10:52:37 · 832 阅读 · 0 评论 -
用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根
用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根。#include #include int main(){ float left,right,mid; float fleft, fright,fmid; left=-10.; right=10.; mid=(left+right)/2; fmid=2*mid*mid*mid-4*m原创 2013-11-12 10:20:36 · 9118 阅读 · 0 评论 -
求满足如下条件的五位数字
判断满足下列条件的五位数字,将它们输出,并统计它们的个数。 (1)最高两位可以被6整除; (2)最低两位可以被6整除; (3)百位也可以被6整除; #include void main(){ int low, mid, high; int count=0; int num; for(num=10000;num<100000;nu原创 2013-11-12 11:21:55 · 1181 阅读 · 0 评论 -
统计最长的单词
写一个函数,输入一行字符,将此字符串中最长的单词输出。#include #include #include #include int main(){ char str[1000]; int i,maxLength, length; char maxStr[100], tempStr[100]; gets(str); i=0; maxLength=0; whil原创 2013-12-17 08:34:51 · 1017 阅读 · 0 评论 -
递归逆向输出字符串
输入一个字符串,编写递归函数将字符串按相反的顺序输出。#include #include #include #include int reverse(char *str, int start, int end);int main(){ char str[100]; gets(str); reverse(str,0,strlen(str)-1); printf("\n"原创 2013-12-17 08:35:52 · 1788 阅读 · 0 评论 -
转圈数数淘汰
有n个人围成一圈,顺序编号,从第一个人开始报数,凡报到3的人出圈,编写程序,问最后留下的是原来第几号的那位?#include #include #include #include int main(){ int n,i,count,index,begin; int *p; scanf("%d",&n); p=(int *)malloc(n*sizeof(int));原创 2013-12-17 09:00:25 · 1255 阅读 · 0 评论 -
哥德巴赫猜想
设计一个函数,验证哥德巴赫猜想(任意一个大于等于6的偶数都可以分解为两个素数之和)。要求偶数从main函数中输入。#include int judge(int); //判断一个数是否为素数void divide(int); //将一个数分解为两个素数int main(){ int number; scanf("%d", &number); while(number%2!原创 2013-12-17 08:31:22 · 2229 阅读 · 0 评论 -
数的插入排序
随机产生十个10到100之间的整数,编写函数用直接插入排序法对这组数按从小到大的顺序排序。要求:设计三个函数输入函数、输出函数和排序函数。#include #include #include int produce(int array[], int n);int output(int array[], int n);int insertSort(int array[], int原创 2013-12-17 08:33:49 · 1045 阅读 · 0 评论 -
字符串排序
从主函数输入十个不等长的字符串,编写函数,对这些串进行排序,在主调函数中输出排好序的串。#include #include #include #include int sort(char *ps[],int n);int main(){ char str[10][100]; //={"hello","yantai","shandong","weifang","universi原创 2013-12-17 09:09:27 · 774 阅读 · 0 评论 -
数组操作
输入n个整数,编写函数实现以下操作,要求用指针实现: ① 对n个数进行排序; ② 将从指定位置的m个数逆序存放;例如:原序列为2,4,6,8,10,12,14,16,18,20,若要求把从第4个数开始的5个数按逆序重新排列,则得到的新数列为2,4,6,16,14,12,10,8,18,20)。 ③ 输出这组数。#include #include #includ原创 2013-12-17 09:53:45 · 1242 阅读 · 0 评论 -
统计个位数字相同的数的个数
随机产生100个[0,99]之间的整数,编写函数统计个位数上的数字分别是0、1、2、3、4、5、6、7、8、9的个数并输出。#include #include #include int main(){ int array[100]; int number[10]; int i; for(i=0;i<10;i++) number[i]=0; srand(time原创 2013-12-17 08:32:46 · 2039 阅读 · 0 评论 -
十六进制转换为十进制
编写函数,输入一个十六进制数,输出相应的十进制数。#include #include #include #include int main(){ char str[100]; int number=0; int i; scanf("%s", str); //预处理,将小写字母变成大写字母 for(i=0;i<strlen(str);i++) { if (str原创 2013-12-17 08:38:56 · 2336 阅读 · 0 评论 -
最长公共子序列
动态规划法求解,标准的C语言,可以求出其中一个原创 2014-10-23 08:23:59 · 1346 阅读 · 0 评论 -
螺旋矩阵
下面是一个5×5的螺旋方阵,试编程打印出此形式的n×n(n 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9原创 2014-11-10 16:27:58 · 1394 阅读 · 0 评论 -
魔方矩阵
输入一奇数,要求产生对应的二维矩阵。原创 2014-11-10 17:09:01 · 4916 阅读 · 0 评论 -
C语言实现万年历程序
C语言实现万年历程序#include int year(int y){ if ((y%4==0) && (y%100!=0) || y%400==0) return 366; else return 365;}int main(){ int y; int i,j,sum=0; int begin,week; int days[12]={31,28,31,30原创 2014-10-26 11:30:51 · 50379 阅读 · 13 评论 -
批处理作业调度问题
给定n个作业的集合J={J1,J2,…,Jn}。每一个作业有两项任务分别在两台机器上完成。每个作业必须先由机器1处理,再由机器2处理。作业Ji需要机器j的处理时间为tji,i=1,2,…n,j=1,2。对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。则所有作业在机器2上完成处理的时间和f=F21+F22+…+F2n称为该作业调度的完成时间和。 批处理作业调度问题要求,对原创 2014-11-12 15:06:22 · 3097 阅读 · 0 评论 -
最优装载问题
问题描述:给定一艘容量为C的船,给定一批w原创 2014-11-02 23:32:22 · 3081 阅读 · 0 评论 -
用数组实现大数加法
当数字足够大的时间,用数组实现大数的原创 2014-11-13 12:17:09 · 3556 阅读 · 1 评论 -
判断数字是多少位数,正向反向输出
#include int main(){ int n,m,temp=1; int count=0; int i; scanf("%d",&n); m=n; while(m!=0) { m=m/10; count=count+1; } printf("%d is one %d-bit number.\n",n,count); m=n; for(i=1;原创 2014-10-27 18:22:12 · 1751 阅读 · 1 评论 -
二分法求方程的根
参考代码如下:原创 2014-11-03 16:28:13 · 11934 阅读 · 0 评论 -
符号三角形问题
下图所示的三角形中,有14个“+“和14个“-”。2个同号下面是+,两个异号下面是-。+ + - + - + ++ - - - - +- + + + -- + + -- + -- -+ 在一般情况下,符号三角形的第一行有n个符号。符号三角形问题,要求对于给定的n,计算有多少个不同的符号三角形,使其所含的“+”和“-”相同。原创 2014-11-12 15:16:10 · 10066 阅读 · 4 评论 -
直角三角形的边
在直角三角形中,两个直角边的平方和等于斜边的平方,也就是非常著名的“勾股定理”,那么这100以内的数字中,就存在着这样的一些数,比如:3,4,5,3的平方加上4的平方等于5的平方,这三个数就可以组成一个直角三角形。 现在我们要求出这些数(要求相同度数的直角三角形的三条边使用最小值,比如:6,8,10就要变成3,4,5)。 关键在于如何有效参考代码如下:原创 2014-11-14 20:45:06 · 1635 阅读 · 0 评论 -
循环小数
使用数组精确计算M/N(0<M<N<=100)的值。如果M/N是无限循环小数,则计算并输出它的第一循环节,同时要求输出循环节的起止位置(小数位的序号)。原创 2014-11-14 20:46:52 · 1456 阅读 · 0 评论 -
6174
任意给一个四位数(各位数不完全相同),四个数组成一个最大数和一个最小数,他们的差又能组成一个最大数和一个最小数,--------直到某一步得到的差将会出现循环重复。写一个程序统计所有满足以上条件的四位数。(黑洞数,经过不到7步,都可以到达6174)例如:3100 ― 0013 = 3087 8730 ― 0378 = 8352 8532 ― 2358 = 6174原创 2014-11-14 20:43:25 · 2548 阅读 · 1 评论 -
数字三角形
给定一个由n行数字组成的数字三角形,如下图所示。y原创 2014-11-14 09:05:02 · 987 阅读 · 0 评论 -
租用游艇问题
长江俱乐部在长江设置了n个游艇出租站1,2,…n,游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),设计一个算法,计算出从出租站1到出租站n所需要的最少租金。原创 2014-11-14 09:09:03 · 1875 阅读 · 0 评论