鱼C论坛

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

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

[复制链接]
发表于 2014-1-13 00:31:24 | 显示全部楼层
好,,支持,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-13 16:28:09 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

2014.1.15

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

想知道小甲鱼最近在做啥?请访问 -> 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
………………………………..
#include<stdio.h>

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

/*主函数*/
int main()
{
        int i,j,n;
        printf("输入行数 N=");
        do
        {
                scanf("%d",&n);                //控制输入正确的值以保证屏幕显示的图形正确
        }while(n>12&&printf("输入过大,请重新输入N="));
        for(i=0;i<=n;i++)                //控制输出N行
        {
                for(j=0;j<24-2*i;j++) printf(" "); //控制输出第i行前面的空格
                for(j=1;j<i+2;j++) printf("%4d",Get(i,j)); //输出第i行的第j个值
                printf("\n");
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-17 10:59:41 | 显示全部楼层
努力努力努力努力努力努力努力
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-21 11:44:43 | 显示全部楼层
很好很好啊啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-21 12:52:36 | 显示全部楼层
新手 随便逛逛{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

2014.1.21

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

void printb(int x,int n)
{
        if(n>0)
        {
                putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); //输出第n位
                printb(x,n-1);                        //归调用,输出x的后n-1位
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

struct date{
int year;
int month;
int day;
};

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

int days(struct date day)
{
        static int day_tab[2][13]=
        {{0,31,28,31,30,31,30,31,31,30,31,30,31,}, //平均每月的天数,分闰年和非闰年
        {0,31,29,31,30,31,30,31,31,30,31,30,31,},
        };
        int i,lp;
        lp=day.year%4==0&&day.year%100!=0||day.year%400==0;
        /*判定year为闰年还是平年,lp=0为平年,非0为闰年*/
        for(i=1;i<day.month;i++)                                        //计算本年中自1月1日起的天数
                day.day+=day_tab[lp][i];
        return day.day;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-7-18 00:27:37 | 显示全部楼层
这个要收藏起来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

太感谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 03:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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