C语言趣味程序百例精解
C语言趣味程序百例精解大全
94.兔子产子
95.将阿拉伯数字转换为罗马数字
96.选美比赛
97.满足特异条件的数列
98.八皇后问题
99.超长正整数的加法
100.数字移动
《C语言趣味程序百例精解》CHM V1.0
第七章-逻辑推理与判断
48.新娘和新郞
49.委派任务
50.谁在说谎
51.谁是窃贼
52.黑与白
53.谜语博士的难题(1)
54.谜语博士的难题(2)
55.哪个大夫哪天值班
56.区分旅客国籍
57.谁家孩子跑最慢
65.乘式还原(2) 思考题
68.九位累进可除数 思考题
76.小明买书 思考题
77.波松瓦的分酒趣题 思考题
87.青蛙交换 思考题
88.常胜将军 思考题
89.抢30 思考题
90.搬山游戏 思考题
92.人机猜数游戏(2) 思考题
96.选美比赛 思考题
98.八皇后问题 思考题
99.超长正整数的加法 思考题
本电子书所有代码均在Windows XP SP2,Microsoft Visual C++ 6.0环境下测试通过。
在电子书制作过程中,本人得到了CSDN以下网友的热心帮助,特此感谢!
他们是gfxiang,lihui_shine,raincatss。
如果发现任何错误,包括错别字,程序问题,请立即指出,以便修正。
2.绘制余弦曲线和直线 在屏幕上显示0-360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。 *问题分析与算法设计 本题可以在上题的基础上进行修改。图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。为此,可以先判断图形的交点,再分别控制打印两个不同的图形。 *程序注释与说明 #include #include void main() { double y; int x,m,n,yy; for(yy=0;yy #include void main() { double y; int x,m,n; for(y=1;y>=-1;y-=0.1) { m=(int)(asin(y)*10); n=(int)(acos(y)*10); for(x=0;x
C-C++语言趣味程序设计编程百例精解(2)
C语言趣味程序百例
C语言趣味程序百例(1):绘制余弦曲线public class test1{public static void main(String args[]){double y;double x, m;for (y=1;y>-1;y-=0.1) {m= Math.acos(y) * 10;for (x = 1; x < m; x++)System.out.print(" ");System.out.print("*");for (; x < 62 - m; x++)System.out.print(" ");System.out.println("*");}}}C语言趣味程序百例(3):绘制圆public class test3{public static void main(String args[]) {double y;double x, m;for(y=10;y>=-10;y--){m=2*Math.sqrt(100-y*y);for(x=1;x<30-m;x++)System.out.print(" ");System.out.print("*");for(;x<30+m;x++)System.out.print(" ");System.out.println("*");}}}import java.util.*;public class test4{public static void main(String args[]){int max=0;int min=100;double sum=0;for(int i=1;i<=10;i++){System.out.printf("请输入第"+i+"个分数:\n");Scanner reader=new Scanner(System.in);int x=reader.nextInt();sum+=x;if(x> max) max=x;if(x< min) min=x;}System.out.println("无效的最高分和最低分:"+max+" , "+min);System.out.println("最后选手的得分是:"+(sum-max-min)/8.0);}}public class test5{public static void main(String args[]){for (int i=999;i>99;i--) {if (555555%i==0) {System.out.println("最大约数="+i);return;}}}}C语言趣味程序百例(12):抓交通肇事犯public class test12{public static void main(String args[]){int k;for(int i=1;i<=9;i++){for(int j=0;j<=9;j++){if(i!=j){k=i*1000+i*100+j*10+j;for(int c=31;c< 100;c++){if(c*c==k)System.out.println("肇事车牌号是"+k);}}}}}}public class test38{public static void main(String args[]){int count = 0;for (int i = 0; i <= 100; i++)for (int j = 0; j <= 50; j++)for (int k = 0; k <= 20; k++) {if (i + j * 2 + k * 5 == 100) {System.out.println(count++ + ":" + i + "-" + j + "-" + k);}}}}public class test40{public static void main(String args[]){for (int i = 0; i <= 3; i++)for (int j = 0; j <= 3; j++) {if (8 - i - j <= 6)System.out.println("Res=" + i + " White=" + j + " Black="+ (8 - i - j));}}}C语言趣味程序百例(54):博士的难题2public class test54{public static void main(String args[]){for (int a = 1; a <= 3; a++)for (int b = 1; b <= 3; b++)for (int c = 1; c <= 3; c++)if ((a != b && b != c && a != c)&& (a == 1 && b == 1 || a == 2 && b != 1 || a == 3)&& (b == 1 && b == 3 || b == 2 && b != 3 || b == 3)&& (c == 1 && b == 2 || c == 2 && b != 2 || c == 3)) {System.out.println("1表示诚实族,2表示说谎族,3表示两面族");System.out.println("a=" + a);System.out.println("b=" + b);System.out.println("c=" + c);}}}C语言趣味程序百例(62):奇特立方体public class test62{public static void main(String args[]){int x[]=new int[8];for(int i=0;i<8;i++){x[i]=Integer.parseInt(args[i]);}new test62().cube62(x);}public void cube62(int x[]) {int n = 8;boolean success=false;for (int a = 0; a < n; a++)for (int b = 0; b < n; b++)for (int c = 0; c < n; c++)for (int d =0; d < n; d++)for (int e = 0; e < n; e++)for (int f = 0; f < n; f++)for (int g = 0; g < n; g++)for (int h =0; h < n; h++) {if (notEquls(new int[] { x[a],x[b], x[c],x[d],x[e],x[f],x[g],x[h]})) {if(cube62(x[a],x[b], x[c], x[d], x[e], x[f], x[g], x[h])) return;}}if(success!=true) System.out.println("不能构成奇妙立方体");;}public boolean cube62(int a, int b, int c, int d, int e, int f, int g, int h) {boolean success=false;int s = a + b + c + d;if (s == e + f + g + h)if (s == a + b + e + f)if (s == c + d + g + h)if (s == a + c + e + g)if (s == b + d + f + h) {System.out.println("能构成奇特立方体");System.out.print(" a=" + a);System.out.print(" b=" + b);System.out.print(" c=" + c);System.out.print(" d=" + d);System.out.print(" e=" + e);System.out.print(" f=" + f);System.out.print(" g=" + g);System.out.println(" h=" + h);System.out.println("构成的奇特立方体如下图:");System.out.println(" e/----------/f");System.out.println(" a/----------/b|");System.out.println(" | | | |");System.out.println(" | | | |");System.out.println(" | | | |");System.out.println(" |g/--------|-/h");System.out.println(" c/----------/d");return true;}return success;}public boolean notEquls(int[] a) {if (a == null || a.length == 0 || a.length == 1)return true;for (int i = 0; i < a.length; i++) {for (int j = 0; j < a.length; j++) {if (a[i] == a[j] && i != j) {return false;}}}return true;}}public class test49{public static void main(String args[]){for (int a = 0; a <= 1; a++)for (int b = 0; b <= 1; b++)for (int c = 0; c <= 1; c++)for (int d = 0; d <= 1; d++)for (int e = 0; e <= 1; e++)for (int f = 0; f <= 1; f++) {if (a + b >= 1&& a + d <= 1&& a + e + f == 2&& (b + c == 0 || b + c == 2)&& (c + d == 1)&& ((d == 0 && e == 0) || (d == 1 ))) {System.out.println("0是不去,1是去");System.out.println("a="+a);System.out.println("b="+b);System.out.println("c="+c);System.out.println("d="+d);System.out.println("e="+e);System.out.println("f="+f);}}}}import java.io.*;public class test10{public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("input int:");String s=br.readLine();int val=Integer.parseInt(s);System.out.println(getBits(val));}public static String getBits(int value){int displayMask=1<<31;StringBuffer buf=new StringBuffer(35);for(int c=1;c<=32;c++){buf.append((value & displayMask)==0? '0':'1');value<<=1;if(c%8==0)buf.append(' ');}return buf.toString();}}public class test9{public static void main(String args[]){int n=Integer.parseInt(args[0]);System.out.println("N="+n);for(int i=0;i<=n;i++){for(int j=0;j< 12-i;j++) System.out.printf(" ");for(int j=1;j< i+2;j++) System.out.printf("%6d",c(i,j));System.out.println();}}public static int c(int x,int y){int z;if((y==1)||(y==x+1)) return 1;z=c(x-1,y-1)+c(x-1,y);return z;}}C语言趣味程序百例(79):随机数求圆周率public class test79{public static void main(String args[]){double all=10000000;double l=1000000;double pai=0;double in=0;double x=0,y=0;for (int i=0;i<all;i++) {x=(Math.random()*l);y=(Math.random()*l);if(x*x+y*y<l*l)in++;}pai=(in/all*4);System.out.println("Times/All="+in+"/"+all+" "+"π~="+pai);}}。
CC语言趣味程序设计编程百例精解
C-C++语言趣味程序设计编程百例精解()?81.角谷猜想日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。
猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。
请编程验证。
*问题分析与算法设计本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。
题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。
*程序说明与注释#include<stdio.h>int main(){int n,count=0;printf("Please enter number:");scanf("%d",&n); /*输入任一整数*/do{if(n%2)n=n*3+1; /*若为奇数,n乘3加1*/printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n);}else{n/=2; /*若为偶数n除以2*/printf("[%d]: %d/2=%d\n",++count,2*n,n);}}while(n!=1); /*n不等于1则继续以上过程*/}82.四方定理数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。
请编程证此定理。
*问题分析与算法设计本题是一个定理,我们不去证明它而是编程序验证。
对四个变量采用试探的方法进行计算,满足要求时输出计算结果。
*程序说明与注释#include<stdio.h>#include<stdlib.h>int main()int number,i,j,k,l;printf("Please enter a number=");scanf("%d",&number); /*输入整数*/for(i=1;i<number/2;i++) /*试探法。
C语言程序设计100个简单的经典例子
经典C语言程序设计100例1.数字排列2.奖金分配问题3.已知条件求解整数4.输入日期判断第几天5.输入整数进行排序6.用*号显示字母C的图案7.显示特殊图案8.打印九九口诀9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大公约数和最小公倍数17.统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a的值19.求解"完数"20.球体自由落下物理问题21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和25.求1+2!+3!+...+20!的和26.利用递归方法求5!27.将输入字符以相反顺序打印28.岁数问题29.求解正整数位数30.判断回文数31.星期几猜测游戏32.改变文本颜色33.学习gotoxy()与clrscr()函数34.练习函数调用35.设置文本颜色36.求100之内的素数37.对10个数进行排序38.求3*3矩阵对角线元素之和39.数字插入数组重新排序40.将一个数组逆序输出41.static定义静态变量用法42.使用auto定义变量用法43.使用static的另一用法44.使用external的用法45.使用register定义变量方法46.宏#define命令练习(1)47.宏#define命令练习(2)48.宏#define命令练习(3)49.#if #ifdef和#ifndef的综合应用50.#include 的应用练习51.学习使用按位与 &52.学习使用按位或 |53.学习使用按位异或 ^54.取一个整数从右端开始的4~7位。
55.学习使用按位取反~56.用circle画圆形57.学用line画直线58.用rectangle画方形59.画图综合例子160.画图综合例子261.打印杨辉三角形62.学习putpixel画点63.画椭圆ellipse64.利用ellipse and rectangle画图65.画个最优美的图案66.输入3个数字按大小顺序输出67.输入数组交换元素重新输出68.多个整数后移位置问题69.圆圈报数问题70.计算一个字符串长度71.编写输入/输出函数72.创建链表73.反向输出链表74.连接两个链表75.算一道简单题目76.调用函数求1/2+1/4+...+1/n77.填空练习(指向指针的指针)78.找到年龄最大的人79.字符串排序80.海滩猴子分桃81.已知公式条件求数字82.八进制转换为十进制83.求0-7所能组成的奇数个数84.由两个素数之和表示的偶数85.判断一个素数能被几个9整除86.两个字符串连接程序87.结构体变量传递88.读取数字的整数值并打印出该值个数的*89.数据加密90.专升本一题91.时间函数举例192.时间函数举例293.时间函数举例394.一个猜数游戏95.家庭财务管理小程序96.计算字符串中子串出现的次数97.输入字符并保存到磁盘98.字符串转换成大写字母并输出保存99.文件操作应用1100.文件操作应用2--------------------------------------------------------------------------------c语言经典100题【实用】【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
C语言程序设计经典100例(全)
103f程序1】【题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
CC语言经典实用趣味程序设计编程百例精解56
C/C++语言经典、实用、趣味程序设计编程百例精解(5-6)41.马克思手稿中的数学题马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?*问题分析与算法设计设x,y,z分别代表男人、女人和小孩。
按题目的要求,可得到下面的方程:x+y+z=30 (1)3x+2y+z=50 (2)用方程程序求此不定方程的非负整数解,可先通过(2)-(1)式得:2x+y=20 (3)由(3)式可知,x变化范围是0~10*程序说明与注释#include<stdio.h>int main(){int x,y,z,count=0;printf(" Men Women Children\n");printf("………………………………….\n");for(x=0;x<=10;x++){y=20-2*x; /*x定值据(3)式求y*/z=30-x-y; /*由(1)式求z*/if(3*x+2*y+z==50) /*当前得到的一组解是否满足式(2)*/printf(" %2d: %d %d %d\n",++count,x,y,z);}}42.最大公约数和最小公倍数求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM)*问题分析与算法设计手工方式求两个正整数的蝚大公约数的方法是用辗转相除法,在程序中可以模拟这种方式。
*程序说明与注释#include<stdio.h>int main(){int a,b,num1,num2,temp;printf("Input a & b:");scanf("%d%d",&num1,&num2);if(num1>num2) /*找出两个数中的较大值*/{temp=num1; num1=num2; num2=temp; /*交换两个整数*/}a=num1; b=num2;while(b!=0) /*采用辗转相除法求最大公约数*/{temp=a%b;a=b;b=temp;}printf("The GCD of %d and %d is: %d\n",num1,num2,a); /*输出最大公约数*/ printf("The LCM of them is: %d\n",num1*num2/a); /*输出最小公倍数*/}*运行结果1.Input a & b: 20 55The GCD of 20 and 55 is: 5The LCM of them is: 2202.Input a & b: 17 71The GCD of 17 and 71 is: 1The LCM of them is: 12073.Input a & b: 24 88The GCD of 24 and 88 is: 8The LCM of them is: 2644.Input a & b: 35 85The GCD of 35 and 85 is: 5The LCM of them is: 595*思考题求一个最小的正整数,这个正整数被任意n(2<=n<=10)除都是除不尽的,而且余数总是(n-1)。
C-C 语言趣味程序设计编程百例精解(7)
C-C++语言趣味程序设计编程百例精解(7).txt蜜蜂整日忙碌,受到赞扬;蚊子不停奔波,人见人打。
多么忙不重要,为什么忙才重要。
61.1~9组成三个3位的平方数将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不允许有重复数字,也不许同其它组的三个数字重复,要求每组中的三位数都组成一个平方数。
*问题分析与算法设计本问题的思路很多,这里介绍一种简单快速的算法。
首先求出三位数中不包含0且是某个整数平方的三位数,这样的三位数是不多的。
然后将满足条件的三位数进行组合,使得所选出的3个三位数的9个数字没有重复。
程序中可以将寻找足条件的三位数的过程和对该三位数进行数字分解的过程结合起来。
*程序说明与注释#include<stdio.h>int main(){int a[20],num[20][3],b[10]; /*a:存放满足条件的三位数*//*若不是10 的倍数,则分解三位数*//*分解该三位数中的每一个数字*/int i,j,k,m,n,t,flag;printf("The 3 squares with 3 different digits each are:\n");for(j=0,i=11;i<=31;i++) /*求出是平方数的三位数*/if(i%10!=0) /*若不是10的倍数,则分解三位数*/{k=i*i; /*分解该三位数中的每一个数字*/num[j+1][0]=k/100; /*百位*/num[j+1][1]=k/10%10; /*十位*/num[j+1][2]=k%10; /*个位*/if(!(num[j+1][0]==num[j+1][1]||num[j+1][0]==num[j+1][2]||num[j+1][1]==num[j+1][2])) /*若分解的三位数字均不相等*/a[++j]=k; /*j:计数器,统计已找到的满足要求的三位数*/}for(i=1;i<=j-2;++i) /*从满足条件的三位数中选出三个进行组合*/{b[1]=num[i][0];b[2]=num[i][1];b[3]=num[i][2];for(t=i+1;t<=j-1;++t){b[4]=num[t][0]; /*取第t个数的三位数字*/b[5]=num[t][1];b[6]=num[t][2];for(flag=0,m=1;!flag&&m<=3;m++) /*flag:出现数字重复的标记*/for(n=4;!flag&&n<=6;n++) /*判断两个数的数字是否有重复*/if(b[m]==b[n])flag=1; /*flag=1:数字有重复*/if(!flag)for(k=t+1;k<=j;k++){b[7]=num[k][0]; /*取第k个数的三位数字*/b[8]=num[k][1];b[9]=num[k][2];for(flag=0,m=1;!flag&&m<=6;m++) /*判断前两个数字是否*/for(n=7;!flag&&n<=9;n++) /*与第三个数的数字重复*/if(b[m]==b[n])flag=1;if(!flag) /*若均不重复则打印结果*/printf("%d,%d,%d\n",a[i],a[t],a[k]);}}}}*运行结果The 3 squares with 3 different digits each are:361,529,784*思考题将1、2、3、4、5、6、7、8、9九个数字分成二组,每个数字只能用一次,一组形成一个5位数,另一组形成一个4位数,使得前者为后者的n倍。
C语言程序设计经典100例(全)
103f程序1】【题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
C语言程序设计100个简单经典例子
经典C语言程序设计100例利用递归方法求5!1.数字排列2.奖金分配问题3.已知条件求解整数4.输入日期判断第几天5.输入整数进行排序6.用*号显示字母C的图案7.显示特别图案8.打印九九口诀9.输出国际象棋棋盘10.打印楼梯并按条件打印笑脸11.经典兔子问题12.判断素数13.水仙花数问题14.正整数分解质因数15.学习成绩划分16.正整数求其最大合约数和最小公倍数统计英文字母/空格/数字个数18.求s=a+aa+aaa+aa...a 的值19.求解"完数"20.球体自由落下物理问题21.猴子吃桃问题22.乒乓球比赛抽签问题23.打印菱形图案24.分数数列求和25.求1+2!+3!+...+20! 的和26.38.求3*3矩阵对角线元素之和一个数组逆序输出41.static定义静态变量用法42.76.调用函数求1/2+1/4+...+1/nstatic的另一用法77.填空练习(指向指针的指针)46.宏#define命令练习(1)47.宏#define命令练习(2)48.宏#define命令练习(3)49.#if#ifdef和#ifndef的综合应用50.#include的应用练习51.学习使用按位与&除52.学习使用按位或|53.学习使用按位异或^4~7位。
该值个数的*55.学习使用按位取反~数97.输入字符并保存到磁盘98.图符串变换成大写字母并输出保存出--------------------------------------------------------------------------------c语言经典100题【合用】【程序1】题目:有1、2、3、4个数字,能组成多少个互不同样且无重复数字的三位数?都是多少?1.程序解析:可填在百位、十位、个位的数字都是掉不满足条件的排列。
1、2、3、4。
组成全部的排列后再去2.程序源代码:main(){inti,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for(k=1;k<5;k++){if(i!=k&&i!=j&&j!=k) /*保证i、j、k三位互不同样*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金依照利润提成。
100个经典C语言编程例子(问题详解另附)
100个经典C语言编程例子(问题详解另附)100个经典C语言编程例子(答案另附)1:计算 A+B 的问题时间限制:1000MS 存限制:10000K总提交数:1347 正确数:655问题描述输入两个整数 a 和 b ,计算 a+b 的结果并输出。
输入两个整数输出一个整数输入样例1 2输出样例32:Hello World!时间限制:1000MS 存限制:65536K总提交数:848 正确数:693问题描述编写第一个C语言程序。
在屏幕上输出:Hello World!输入程序没有输入输出Hello World!输入样例输出样例Hello World!提示1、输出的容要与题目的要求完全一样,不能多字符也不能少字符。
3:两个整数的值互换时间限制:1000MS 存限制:65536K总提交数:1235 正确数:530问题描述输入两个整数a,b ,将 a 和 b 的值互换,并输出。
例如:输入: 2 5输出: 5 2输入两个整数输出两个整数输入样例2 5输出样例5 2提示注意输入和输出的格式,两个数据之间用一个空格隔开。
问题来源4:计算三门课程总分和平均分时间限制:1000MS 存限制:65536K总提交数:1190 正确数:482问题描述输入三门课程的成绩,输出总分和平均分。
要求:(1)输入三个数,用空格隔开。
输入的数可以是小数。
(2)输出两个数,用空格隔开。
输出的数保留两位小数。
例如:输入: 75 80 90输出: 245.00 81.67 输入输入三个数,用空格隔开。
输入的数可以是小数。
输出输出两个数,用空格隔开。
输出的数保留两位小数。
输入样例75 80 90输出样例245.00 81.67问题来源5:鸡兔同笼问题时间限制:1000MS 存限制:65536K总提交数:872 正确数:443问题描述这个问题,是我国古代著名趣题之一。
大约在1500年前,《子算经》中就记载了这个有趣的问题。
书中是这样叙述的:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。
C语言经典程序100例
{ i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf("%-5d",n); } } printf("\n"); } ================================================== 【程序14】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下 述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出 即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作 为新的正整数你n, 重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 2.程序源代码: /* zheng int is divided yinshu*/ main() { int n,i; printf("\nplease input a number:\n"); scanf("%d",amp;n); printf("%d=",n); for(i=2;i<=n;i++) { while(n!=i) {
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ } printf("\n");/*每一行后换行*/ } } ================================================== 【程序9】 题目:要求输出国际象棋棋盘。 1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑 方格,还是白方格。 2.程序源代码: #include "stdio.h" main() { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) if((i+j)%2==0) printf("%c%c",219,219); else printf(" "); printf("\n"); } } ================================================== 【程序10】 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的 个数。 2.程序源代码: #include "stdio.h" main() { int i,j; printf("\1\1\n");/*输出两个笑脸*/
C语言趣味程序设计编程百例精解
*问题分析与算法设计 可以设想:先求出 100!的值,然后数一下末尾有多少个零。事实上,与上题一样,由于计
算机所能表示的整数范围有限,这是不可能的。 为了解决这个问题,必须首先从数学上分析在 100!结果值的末尾产生零的条件。不难看
出:一个整数若含有一个因子 5,则必然会在求 100!时产生一个零。因此问题转化为求 1 到 100 这 100 个整数中包含了多少个因子 5。若整数 N 能被 25 整除,则 N 包含 2 个因子 5;若整数 N 能被 5 整除,则 N 包含 1 个因子 5。 *程序说明与注释 #include<stdio.h> int main() { int a,count =0; for(a=5;a<=100;a+=5) //循环从 5 开始,以 5 的倍数为步长,考察整数 { ++count; //若为 5 的倍数,计数器加 1 if(!(a%25)) ++count; //若为 25 的倍数,计数器再加 1 } printf("The number of 0 in the end of 100! is: %d.\n",count); //打印结果 return 0; }
C语言学习100例--实例程序
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
C-C++语言趣味程序设计编程百例精解(9)
*运行结果
1) Enter a number:4312
[1]:4312-1234=3078
[2]:8730-378=8352
[3]:8532-2358=6174
2) Enter a number:8720
[1]:8720-278=8442
[2]:8499=5355
85.回文数的形成
任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步聚,则最终可得到一个回文数。请编程验证。
*问题分析与算法设计
回文数的这一形成规则目前还属于一个猜想,尚未得到数学上的证明。有些回文数要经历上百个步聚才能获得。这里通过编程验证。
题目中给出的处理过程很清楚,算法不需要特殊设计。可按照题目的叙述直接进行验证。
*思考题
本题的求解方法是先证明,在证明的过程中找到编程的算法,然后实现编程。实际上我们也可以不进行证明,直接使用
编程中常用的试探方法来找出该数列,验证该定理。请读者自行设计算法。当然这样得到的数列可能与用定理方法得到的数列不一样。
{
parse_sort(num,each); /*将整数分解,数字存入each数组中*/
max_min(each,&max,&min); /*求数字组成的最大值和最小值*/
num=max-min; /*求最大值和最小值的差*/
printf("[%d]: %d-%d=%d\n",++count,max,min,num); /*输出该步计算过程*/
入任意正整数*/
vr6174(n); /*调用函数进行验证*/
C-C 语言趣味程序设计编程百例精解(2)
假设银行整存整取存款不同期限的月息利率分别为��?
0.63% 期限=1��?
0.66% 期限=2��?
0.69% 期限=3��?
0.75% 期限=5��?
0.84% 期限=8��?
利息=本金*月息利率*12*存款年限��?
现在某人手中��?000元钱,请通过计算选择一种存钱方案,使得钱存入银��?0年后得到的利息最��?假定银行对超过存款期限的那一部分时间不付利息)��?
3)根据余数判断他是在“打鱼”还是在“晒网”;
��?余数��?��?��?,则他是在“打鱼��?
否则 是在“晒网��?
在这三步中,关键是第一步。求��?990��?��?日至指定日期有多少天,要判断经历年份中是否有闰年,二月为29天,平年��?8天。闰年的方法可以用伪语句描述如下��?
如果 ((年能��?除尽 ��?不能��?00除尽)��?能被400除尽)
made fixed deposit for 8 year: 0times
made fixed deposit for 5 year: 4times
made fixed deposit for 3 year: 0times
made fixed deposit for 2 year: 0times
printf(" made fixed deposit for 1 year: %d times\n",n1);
printf(" Toal: %.2f\n",max);
/*输出存款方式*/
}
*运行结果
For maxinum profit,he should so save his money in a bank:
C语言程序设计经典100例(全)
103f程序1】【题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。