鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 清风袋袋

[技术交流] 100个C/C++的编程小例子(2014.1.24)(更新)

[复制链接]
发表于 2014-1-13 00:31:24 | 显示全部楼层
好,,支持,,,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-13 16:28:09 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-15 15:37:44 | 显示全部楼层

2014.1.15

8.借书方案知多少
小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int a,b,c,count=0;
  5.         printf("三人借书的编号可能为:\n");
  6.         for(a=1;a<=5;a++)                                //穷举第一个人借5本书中的1本的全部情况
  7.                 for(b=1;b<=5;b++)                        //穷举第二个人借5本书中的一本的全部情况
  8.                         for(c=1;a!=b&&c<=5;c++) //当前两个人借不同的书时穷举第三个人借5本书中的1本的全部情况
  9.                                 if(c!=a&&c!=b)              //判断第三人与前两个人借的书是否不同
  10.                                       printf("%d:%d,%d,%d\n",++count,a,b,c);//打印可能的借阅方法
  11. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-17 10:12:51 | 显示全部楼层

2014.1.17

9.杨辉三角形

在屏幕上显示杨辉三角形

             1
           1 1
         1 2 1
        1 3 3 1
       1 4 6 4 1
    1 5 10 10 5 1
………………………………..
  1. #include<stdio.h>

  2. /*求杨辉三角形中第x行第y列的值*/
  3. int Get(int x,int y)
  4. {
  5.         int z;
  6.         if((y==1)||(y==x+1)) return 1;        //若为x行的第1或第x+1列,则输出1
  7.         z=Get(x-1,y-1)+Get(x-1,y);                //否则,其值为前一行中第y-1列与第y列值之和
  8.         return z;
  9. }

  10. /*主函数*/
  11. int main()
  12. {
  13.         int i,j,n;
  14.         printf("输入行数 N=");
  15.         do
  16.         {
  17.                 scanf("%d",&n);                //控制输入正确的值以保证屏幕显示的图形正确
  18.         }while(n>12&&printf("输入过大,请重新输入N="));
  19.         for(i=0;i<=n;i++)                //控制输出N行
  20.         {
  21.                 for(j=0;j<24-2*i;j++) printf(" "); //控制输出第i行前面的空格
  22.                 for(j=1;j<i+2;j++) printf("%4d",Get(i,j)); //输出第i行的第j个值
  23.                 printf("\n");
  24.         }
  25. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-17 10:59:41 | 显示全部楼层
努力努力努力努力努力努力努力
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-21 11:44:43 | 显示全部楼层
很好很好啊啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-21 12:52:36 | 显示全部楼层
新手 随便逛逛{:1_1:}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-21 18:21:32 | 显示全部楼层

2014.1.21

10.数制转换
将任一整数转换为二进制形式
  1. #include<stdio.h>
  2. void printb(int,int);
  3. int main()
  4. {
  5.         int x;printf("Input number:");
  6.         scanf("%d",&x);
  7.         printf("It's binary form:");
  8.         printb(x,sizeof(int)*8);        //x:整数 sizeof(int):int型在内存中所占的字节数
  9.         putchar('\n');
  10. }

  11. void printb(int x,int n)
  12. {
  13.         if(n>0)
  14.         {
  15.                 putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); //输出第n位
  16.                 printb(x,n-1);                        //归调用,输出x的后n-1位
  17.         }
  18. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-24 17:19:48 | 显示全部楼层
11.打鱼还是晒网
中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”.
  1. #include<stdio.h>
  2. int days(struct date day);

  3. struct date{
  4. int year;
  5. int month;
  6. int day;
  7. };

  8. int main()
  9. {
  10.         struct date today,term;
  11.         int yearday,year,day;
  12.         printf("Enter year/month/day:");
  13.         scanf("%d%d%d",&today.year,&today.month,&today.day); /*输入日期*/
  14.         term.month=12;                                                                /*设置变量的初始值:月*/
  15.         term.day=31;                                                                /*设置变量的初始值:日*/
  16.         for(yearday=0,year=1990;year<today.year;year++)
  17.         {
  18.                 term.year=year;
  19.                 yearday+=days(term);                                        /*计算从1990年至指定年的前一年共有多少天*/
  20.         }
  21.         yearday+=days(today);                                                /*加上指定年中到指定日期的天数*/
  22.         day=yearday%5;                                                                /*求余数*/
  23.         if(day>0&&day<4) printf("he was fishing at that day.\n");
  24.         else printf("He was sleeping at that day.\n");
  25. }

  26. int days(struct date day)
  27. {
  28.         static int day_tab[2][13]=
  29.         {{0,31,28,31,30,31,30,31,31,30,31,30,31,}, //平均每月的天数,分闰年和非闰年
  30.         {0,31,29,31,30,31,30,31,31,30,31,30,31,},
  31.         };
  32.         int i,lp;
  33.         lp=day.year%4==0&&day.year%100!=0||day.year%400==0;
  34.         /*判定year为闰年还是平年,lp=0为平年,非0为闰年*/
  35.         for(i=1;i<day.month;i++)                                        //计算本年中自1月1日起的天数
  36.                 day.day+=day_tab[lp][i];
  37.         return day.day;
  38. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-18 00:27:37 | 显示全部楼层
这个要收藏起来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-18 17:27:25 | 显示全部楼层
清风袋袋 发表于 2014-1-12 20:32
7.阶乘尾数零的个数
100!的尾数有多少个零?这里稍微解释一下,由于计算机所能表示的整数范围有限,直接解 ...

太感谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-20 10:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表