美文网首页
C语言小程序学习(2)

C语言小程序学习(2)

作者: 极客汪 | 来源:发表于2015-06-18 11:19 被阅读182次

    供思考和复习的一些小程序

    朋友告诉我程序要自己敲,切不可复制粘贴



    程序4

    输入某年某月某日,判断这一天是这一年的第几天?

    main()
    {
    int day,month,year,sum,leap;
    printf("\nplease input year,month,day\n");
    scanf("%d,%d,%d",&year,&month,&day);
    switch(month)/*先计算某月以前月份的总天数*/
    {
     case 1:sum=0;break;
     case 2:sum=31;break;
     case 3:sum=59;break;
     case 4:sum=90;break;
     case 5:sum=120;break;
     case 6:sum=151;break;
     case 7:sum=181;break;
     case 8:sum=212;break;
     case 9:sum=243;break;
     case 10:sum=273;break;
     case 11:sum=304;break;
     case 12:sum=334;break;
     default:printf("data error");break;
    }
    sum=sum+day;  /*再加上某天的天数*/
     if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
      leap=1;
     else
      leap=0;
    if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
    sum++;
    printf("It is the %dth day.",sum);}
    
    

    程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。



    程序5

    输出99口诀*

    #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行9列,i控制行,j控制列。



    程序6

    判断101-200之间有多少个素数,并输出所有素数。

    #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);
    }
    
    

    程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
          则表明此数不是素数,反之是素数。

    相关文章

      网友评论

          本文标题:C语言小程序学习(2)

          本文链接:https://www.haomeiwen.com/subject/utesqttx.html