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;
    double sum;
    printf("请输入一个实数和一个整数\n");
    scanf("%d%d",&a,&b);
    if(b>0)
    {
         for(sum=1,c=1;c<=b;c++)
         {
            sum=sum*a;
         }
        printf("%.2f\n",sum);
    }
    else if(b<0)
    {
        for(sum=1,c=1;c<=-b;c++)
        {
            sum=sum*a;
        }
        sum=1/(double)sum;
        printf("%.2f\n",sum);
    }
    else
    {
        printf("1\n");
    }
    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.要注意运算符的优先级  先执行优先级低的加()

 

5.for语句  

(1)   for(表达式1;表达式2;表达式3)

       {

             循环体语句

       }

(2)循环体语句可以是单条语句也可以是复合语句。  建议无论循环体有几条语句,一律都加大括号

(3)表达式可以部分或全部省略,但两个";"不能省略

6.无限循环中,通过在循环体中加break语句对循环体进行控制

7.    循环次数已知     for语句

       循环次数未知由给定条件控制    while语句

       循环体至少执行一次   do······while语句 

 

 

 

 

 

 

 
 
posted @ 2016-10-27 22:16  333路亚  阅读(306)  评论(11编辑  收藏  举报