首页 > 代码库 > 2016-10-27

2016-10-27

1.编写程序,输入一个整数x,按照下式输出对应的y值。

      技术分享

#include<stdio.h>
int main()
{
    int i,x,y;
    printf("请输入一个整数x\n");
    scanf("%d",&x);
    if(x%2!=0)
    {
        y=0;
        for(i=1;i<=x;i+=2)
        {
            y=y+i;
        }
            printf("%d\n",y);
    }
        else if(x%2==0)
        {
            y=0;
            for(i=2;i<=x;i+=2)
            {
                y=y+i;
            }
                printf("%d\n",y);
        }
    
    return 0;
}
 
 技术分享
 
 总结:注意分情况讨论
 
 2.编程求1-1/2+1/3-1/4+1/5… +1/99-1/100,结果保留两位小数。
#include <stdio.h>
int main ()
{
    int i;
    float sum;
    sum=0;
    for(i=1;i<=100;i++)
    {
        if(i%2!=0)
        {
            sum=sum-(1.0/i);
        }
        else if(i%2==0) 
        {
            sum=sum+(1.0/i);
        }
    }
    printf("和为%.2f\n",sum);
    return 0;
}

技术分享

 总结:要注意负数求和为减

 3.输出2000年至3000年所有闰年的年号,每输出10个年号换一行。最后统计一共有多少个闰年。

 

#include<stdio.h>
int main()
{
   int a,b=0; 
   for(a=2000;a<=3000;a++)
   {
       if(a%4==0&&a%100!=0||a%400==0)
       {
           printf("%d  ",a);
           b++;
          if(b%10==0)
          {
             printf("\n");
          }
       }
   }
   printf("一共有%d个闰年\n",b);
return 0;
}

 

技术分享

 

4.输入一个实数x和一个整数m,计算xm,不允许调用pow()函数。

 

#include<stdio.h>
int main()
{
   int a,b,c,sum;
   scanf("%d%d",&a,&b);
   for(sum=1,c=1;c<=b;c++)
   {
       sum=sum*a;

   }
   printf("%d\n",sum);
   return 0;
}

 

技术分享

 5.输入一串字符,分别统计其中字母、空格、数字和其他字符的个数。

 

#include <stdio.h>
int main()
{
    int a=0,b=0,c=0,d=0;
    char ch1;
    printf("请输入一串字符\n");
    while((ch1=getchar())!=\n)
    {
        if((ch1>=A&&ch1<=Z)||ch1>=a&&ch1<=z)
        {
            a++;
        }
        else if(ch1== )
        {
            b++;
        }
        else if(ch1>=0&&ch1<=9)
        {
            c++;
        }
        else
        {    
            d++;
        }
    }
    printf("字母,空格,数字和其他字符分别为%d,%d,%d,%d\n",a,b,c,d);
    return 0;
}

 

技术分享

 总结:ch1=getchar()中     关系运算符!=的优先级比赋值运算符=优先级高加()后才先算前面的

6.输入一批数(正数和负数),输入0结束,分别计算其中正数的平均值和负数的平均值,

 

#include <stdio.h>
int main()
{
    int a,b=1,c=1,sum1,sum2;
    float average1,average2;
    printf("请输入一批数\n");
    scanf("%d",&a);
    sum1=0;
    sum2=0;
    while(a!=0)
    {
        if(a>0)
        {
            sum1+=a;
            b++;
        }
        else
        {
            sum2+=a;
            c++;
        }
        scanf("%d",&a);
    }
        if(b-1==0)
        {
            printf("没有正数\n");
        }
        else
        {
            average1=(float)sum1/(b-1);
            printf("正数平均值为%.2f\n",average1);
        }
    
        if(c-1==0)
        {
            printf("没有负数\n");
        }
        else
        {
            average2=(float)sum2/(c-1);
            printf("负数平均值为%.2f\n",average2);
        }
    
    return 0;
}

 

技术分享

 总结:注意sum要有赋初值

7.输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)

 

#include <stdio.h>
int main()
{
    int a,b,c=0;
    for(a=2;a<=1000;a++)
    {
        for(b=2;b<=a-1;b++)
            if(a%b==0)
                break;
            if(a==b)
            {
                printf("%03d ",b);
                c++;
               if(c%10==0)
            {
                   printf("\n");
            }
            }
    }
    printf("一共有%d个素数\n",c);
    return 0;
}

技术分享

8.打印下列图形

             技术分享

#include <stdio.h>
int main()
{
    int i,j,k;
    for(i=0;i<=4;i++)
    {
        for(j=0;j<=i;j++)
            printf(" ");
        for(k=1;k<=9-2*i;k++)
            printf("*");
        printf("\n");
    }
    return 0;
}

技术分享

总结:找清规律注意先输出的是什么

 

 

 

知识点总结:1 注意循环一定要有初值

                         2   ①while语句先判断表达式后执行循环体,循环体可能                                   一次也不执行

                               ②do  while语句先执行循环体后判断表达式,至少执                                   行一次循环体

                          3    do  while 后的while有;

                           4    要注意运算符的优先级想先执行优先级低的加()

 

 

 

 

 

 

 
 

2016-10-27