清风袋袋 发表于 2013-12-25 08:21:08

100个C/C++的编程小例子(2014.1.24)(更新)

本帖最后由 清风袋袋 于 2014-1-24 17:20 编辑

在网上找到的C/C++编程百例,想和大家分享一下,有兴趣的大家每天练练手,最后我会整理出来仪器放上去的~先给出第一题:
1、在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线
#include<stdio.h>
#include<math.h>
int main()
{
      double y;
      int x,m;
      for(y=1;y>=-1;y-=0.1)            //y为纵坐标方向,值从1到-1,步长为0.01
      {
                m = acos(y)*10;            //计算出y对应的弧度m,乘以10为图形放大倍数
                for(x=1;x<m;x++) printf(" ");
                        printf("*");               //控制打印左侧的*号
                for(;x<62-m;x++)printf(" ");
                        printf("*\n");            //控制打印同一行中对称的右侧*号
      }

      return 0;
}

精度当然不是很高,只是意思上的余弦曲线了。

给出每次的更新,这样方便点:
1、2013.12.25http://bbs.fishc.com/thread-41991-1-1.html
2、2013.12.26http://bbs.fishc.com/forum.php?m ... d=41991&pid=1567501
3、2013.12.27http://bbs.fishc.com/forum.php?m ... d=41991&pid=1569061
4、2014.1.1      http://bbs.fishc.com/forum.php?m ... d=41991&pid=1581185
5、2014.1.7      http://bbs.fishc.com/forum.php?m ... d=41991&pid=1596417
6、2014.1.9      http://bbs.fishc.com/forum.php?m ... d=41991&pid=1600160
7、2014.1.12    http://bbs.fishc.com/forum.php?m ... d=41991&pid=1606759
8、2014.1.15    http://bbs.fishc.com/forum.php?m ... d=41991&pid=1612222
9、2014.1.17    http://bbs.fishc.com/forum.php?m ... d=41991&pid=1615373
10、2014.1.21http://bbs.fishc.com/forum.php?m ... d=41991&pid=1622832
11、2014.1.24http://bbs.fishc.com/forum.php?m ... d=41991&pid=1627918






musilintan 发表于 2013-12-25 20:26:38

先占了沙发再说吧。。。感谢楼主分享。。。。

正在写代码 发表于 2013-12-25 20:44:24

楼主我回复顶你的贴,你不会不开心吧!!{:7_183:}

善水盈渊 发表于 2013-12-25 20:56:24

楼主楼主其他的在哪呢?

清风袋袋 发表于 2013-12-26 22:26:27

12月26日

本帖最后由 清风袋袋 于 2014-1-9 13:55 编辑

现在给出第二题(那个啥,比较忙,所以尽量一天给一题吧)
2.绘制余弦曲线和直线
#include<stdio.h>
#include<math.h>
int main()
{
      double y;
      int x,m,n,yy;
      for(yy=0;yy<=20;yy++)                  //对于第一个y坐标进行计算并在一行中打印图形
      {
                y=0.1*yy;                                  //y:屏幕行方向坐标
                m=acos(1-y)*10;                     //m: cos(x)曲线上y点对应的屏幕列坐标
                n=45*(y-1)+31;                        //n: 直线上y点对应的列坐标
                for(x=0;x<=62;x++)                   //x: 屏幕列方向坐标
                if(x==m&&x==n) printf("+");   //直线与cos(x)相交时打印“+”
                else if(x==n) printf("+");                        //打印不相交时的直线图形
                else if(x==m||x==62-m) printf("*"); //打印不相交时的cos(x)图形
                else printf(" ");                                        //其它情况打印空格
                printf("\n");
      }
      return 0;
}

清风袋袋 发表于 2013-12-27 15:04:45

12月27日

3.绘制圆
在屏幕上用“*”画一个空心的圆
#include<stdio.h>
#include<math.h>
int main()
{
      double y;
      int x,m;
      for(y=10;y>=-10;y--)
      {
                m=2*sqrt(100-y*y);                                        //计算行y对应的列坐标m
                                                                              //2是屏幕调节系数
                for(x=1;x<30-m;x++) printf(" ");                        //图形左侧空白控制
                printf("*");                                                //圆的左侧
                for(;x<30+m;x++) printf(" ");                //图形的空心部分控制
                printf("*\n");                                        //圆的右侧
      }
      return 0;
}

清风袋袋 发表于 2013-12-27 15:06:41

正在写代码 发表于 2013-12-25 20:44 static/image/common/back.gif
楼主我回复顶你的贴,你不会不开心吧!!

不会。。。。多顶几下,会更好的,黑黑{:7_183:}

正在写代码 发表于 2013-12-27 15:09:53

清风袋袋 发表于 2013-12-27 15:06 static/image/common/back.gif
不会。。。。多顶几下,会更好的,黑黑

开心就好{:5_91:}

清风袋袋 发表于 2013-12-27 15:11:29

正在写代码 发表于 2013-12-27 15:09 static/image/common/back.gif
开心就好

每天更新,咋没人呢

t-maczha 发表于 2013-12-31 21:33:59

看看啊!!!!!!!!!!

清风袋袋 发表于 2014-1-1 15:10:57

(2014.1.1)

抱歉啊,各位,前两天要跨年了,就忙了~给出第四题:
4.歌星大奖赛
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和 一个最低分后其余8个分数的平均值。请编写一个程序实现。
#include<stdio.h>int main(){   int integer,i,max,min,sum;   max=0;      //先假设当前的最大值max   min=100;    //先假设当前的最小值min   sum=0;      //将求累加和变量的初值置为   for(i=1;i<=10;i++)   {      printf("Input number %d=",i);      scanf("%d",&integer);    //输入评委的评分      sum+=integer;            //计算总分      if(integer>max)max=integer; //通过比较筛选出其中的最高分      if(integer<min)min=integer; //通过比较筛选出其中的最低分   }   printf("Canceled maxscore:%d\nCanceled min score:%d\n",max,min);   printf("Average score:%d\n",(sum-max-min)/8);//输出结果
}

清风袋袋 发表于 2014-1-7 18:19:47

算了吧,大家都不看,那就不更新了{:1_1:}

lylqiang 发表于 2014-1-7 20:04:27

我看啊,怎么能不更新呢!,楼主不要放弃啊

lylqiang 发表于 2014-1-7 20:05:12

这个真的很有意思啊,我看你这题思路开阔了好多

清风袋袋 发表于 2014-1-7 21:16:42

lylqiang 发表于 2014-1-7 20:05 static/image/common/back.gif
这个真的很有意思啊,我看你这题思路开阔了好多

谢谢,我会再坚持一下!

清风袋袋 发表于 2014-1-7 21:24:34

(2014.1.7)

本帖最后由 清风袋袋 于 2014-1-9 13:52 编辑

5.求最大数今天这个题目应该很简单的吧?
问555555的约数中最大的三位数是多少?

#include<stdio.h>
int main()
{
      long i;
      int j;
      printf("Please input number:");
      scanf("%ld",&i);
      for(j=999;j>=100;j--)
                if(i%j==0)
                {
                        printf("The max factor with 3 digits in %ld is:%d,\n",i,j);
                        break;
                }
}

红尘&绝恋 发表于 2014-1-8 01:49:45

看看....................

lylqiang 发表于 2014-1-8 19:59:13

好,简单也是一种思路

清风袋袋 发表于 2014-1-9 13:44:00

(2014.1.9)

本帖最后由 清风袋袋 于 2014-1-9 13:52 编辑

6.高次方数的尾数
求13的13次方的最后三位数(之前还不会发代码呢,现在会了,改了格式更加清晰啦)
#include<stdio.h>
int main()
{
        int i,x,y,last=1;                        //变量last保存求X的Y次方过程中的部分乘积的后三位
        printf("Input X and Y(X**Y):");
        scanf("%d**%d",&x,&y);
        for(i=1;i<=y;i++)                        //X自乘Y次
                last=last*x%1000;                //将last乘X后对1000取模,即求积的后三位
        printf("The last 3 digits of %d**%d is:%d\n",x,y,last%1000);
}


清风袋袋 发表于 2014-1-12 20:32:04

2014.1.12

7.阶乘尾数零的个数
100!的尾数有多少个零?#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;
}这里稍微解释一下,由于计算机所能表示的整数范围有限,直接解是不可能的。所以必须首先从数学上分析在100!结果值的末尾产生零的条件。不难看出:一个整数若含有一个因子5,则必然会在求100!时产生一个零。因此问题转化为求1到100这100个整数中包含了多少个因子5。若整数N能被25整除,则N包含2个因子5;若整数N能被5整除,则N包含1个因子5。
页: [1] 2
查看完整版本: 100个C/C++的编程小例子(2014.1.24)(更新)