查看: 146|回复: 1

[基础] C语言算法

[复制链接]

42

主题

0

好友

361

积分

秀才

Rank: 3Rank: 3

  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 29 天

    连续签到: 3 天

    [LV.4]偶尔看看III

    发表于 2017-10-5 16:47:50 |显示全部楼层
    【程序6
    题目:用*号输出字母C的图案。
    1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
    2.程序源代码:
    #include "stdio.h"
    main() {
    printf("Hello C-world!\n");
    printf(" ****\n");
    printf(" *\n");
    printf(" * \n");
    printf(" ****\n"); }
    ==============================================================
    【程序7
    题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
    1.程序分析:字符共有256个。不同字符,图形不一样。
    2.程序源代码:
    #include "stdio.h"
    main()
    {
    char a=176,b=219;
    printf("%c%c%c%c%c\n",b,a,a,a,b);
    printf("%c%c%c%c%c\n",a,b,a,b,a);
    printf("%c%c%c%c%c\n",a,a,b,a,a);
    printf("%c%c%c%c%c\n",a,b,a,b,a);
    printf("%c%c%c%c%c\n",b,a,a,a,b);}
    ==============================================================
    【程序8
    题目:输出9*9口诀。
    1.程序分析:分行与列考虑,共99列,i控制行,j控制列。
    2.程序源代码:
    #include "stdio.h"
    main()
    {
    int i,j,result;
    printf("\n");
    for (i=1;i<10;i++)
    { for(j=1;j<10;j++)
    {
    result=i*j;
    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");/*输出两个笑脸*/
    for(i=1;i<11;i++)
    {
    for(j=1;j<=i;j++)
    printf("%c%c",219,219);
    printf("\n");
    }
    }



    作者: zhlei81 2005-1-22 11:29 回复此发言

    --------------------------------------------------------------------------------

    3 回复:经典C源程序100
    【程序11
    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
    后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
    1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
    2.程序源代码:
    main()
    {
    long f1,f2;
    int i;
    f1=f2=1;
    for(i=1;i<=20;i++)
    { printf("%12ld %12ld",f1,f2);
    if(i%2==0) printf("\n");/*控制输出,每行四个*/
    f1=f1+f2; /*前两个月加起来赋值给第三个月*/
    f2=f1+f2; /*前两个月加起来赋值给第三个月*/
    }
    }
    ==============================================================
    【程序12
    题目:判断101-200之间有多少个素数,并输出所有素数。
    1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
    则表明此数不是素数,反之是素数。
    2.程序源代码:
    #include "math.h"
    main()
    {
    int m,i,k,h=0,leap=1;
    printf("\n");
    for(m=101;m<=200;m++)
    { k=sqrt(m+1);
    for(i=2;i<=k;i++)
    if(m%i==0)
    {leap=0;break;}
    if(leap) {printf("%-4d",m);h++;
    if(h%10==0)
    printf("\n");
    }
    leap=1;
    }
    printf("\nThe total is %d",h);
    }
    ==============================================================
    【程序13
    题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数
    本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
    1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
    2.程序源代码:
    main()
    {
    int i,j,k,n;
    printf("'water flower'number is:");
    for(n=100;n<1000;n++)
    {
    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",&n);
    printf("%d=",n);
    for(i=2;i<=n;i++)
    {
    while(n!=i)
    {
    if(n%i==0)
    { printf("%d*",i);
    n=n/i;
    }
    else
    break;
    }
    }
    printf("%d",n);}
    ==============================================================
    【程序15
    题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
    60分以下的用C表示。
    1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
    2.程序源代码:
    main()
    {
    int score;
    char grade;
    printf("please input a score\n");
    scanf("%d",&score);
    grade=score>=90?'A'score>=60?'B':'C');
    printf("%d belongs to %c",score,grade);
    }
    ==============================================================

    回复

    使用道具 举报

    3

    主题

    1

    好友

    3880

    积分

    状元

    Rank: 6Rank: 6

  • TA的每日心情
    奋斗
    昨天 22:14
  • 签到天数: 894 天

    连续签到: 9 天

    [LV.10]以坛为家III

    发表于 2017-10-5 21:58:32 |显示全部楼层
    学习和参考了
    回复

    使用道具 举报

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

    关闭

    站长推荐上一条 /5 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-10-23 12:22 , Processed in 0.112523 second(s), 10 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部