第四次作业

4-1编写程序输入一个整数x,按照下式输入对应的y值    x为奇数y=1+3+5+...+x    x为偶数y=2+4+6+...+x

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<stdio.h>
int main()
{
    int a,b,sum=0;
    printf("输入一个整数。\n");
    scanf("%d",&a);
    if(a<=0)
    {
        printf("输入错误\n");
    }
    else if(a%2==0)
    {
        for(b=2;b<=a;b=b+2)
        {
            sum=sum+b;
        }
        {
            printf("输出为%d\n",sum);
        }
    }
    else if(a%2!=0)
    {
        for(b=1;b<=a;b=b+2)
        {
            sum=sum+b;
        }
        {
            printf("输出为%d\n",sum);
        }
    }
    return 0;
}

 

知识点总结:for循环语句的应用  for(表达式1;表达式2;表达式3)  表达式1是一个在开始循环前要计算的表达式,即为循环变量赋出值。表达式2是计算结果为真或假的条件表达式。在每次循环前计算该条件,当计算结果为真时执行循环,为假时退出循环。表达式3是一个在每次循环体执行后要计算的表达式。

实验总结:for语句的格式表达含义,充分考虑情况,分析好题目,明确编程思路。

4-2编程求  1-1/2+1/3-1/4+1/5-...-1/100  保留两位小数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
int main()
{
    int a;
    float b,sum;
    for(a=1;a<100;a++)
    {
        if(a%2!=0)
        {
            b=1/(float)a;
        }
        else
        {
            b=-1/(float)a;
        }
        sum=sum+b;
    }
    printf("和为%.2f",sum);
    return 0;
}

 

知识点总结:循环语句,两种情况,

实验总结:保留两位小数的格式%.2f,float浮点型函数的应用。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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=b+1;
            }
            if(b%10==0)
            {
                printf("\n");
            }
        }
        printf("共有%d",b);
    }
    return 0;
}

 

知识点总结:for循环

实验总结:符合闰年的条件,注意语句执行的范围,大括号的使用。

4-4输入一个实数X和一个整数M,计算Xm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
int main()
{
    int a,b;
    float c,sum=1.0;
    printf("输入一个实数和一个整数\n");
    scanf("%f,%d",&c,&a);
    if(b=0)
    {
        sum=1;
    }
    else
    {
         for(b=1;b<=a;b++) 
         {
             sum=sum*c;
         }
    }
    printf("输出为%d\n",sum);
    return 0;<br>}

知识点,实验总结:初始变量赋值,求幂考虑0次幂时为1.

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include<stdio.h>
int main()
{
    int a,b,m,n;
    char c;
    a=0;
    b=0;
    m=0;
    n=0;
    while((c=getchar())!='\n')
    {
        if(c>='a'&&c<='z'||c<='z'&&c>='a')
        {
            a++;
        }
        else if(c==' ')
        {
            b++;
        }
        else if(c>='0'&&c<='9')
        {
            m++;
        }
        else
        {
            n++;
        }
    }
    printf("字母=%d,空格=%d,数字=%d,其他=%d\n",a,b,m,n);
    return 0;
}

 

知识点  实验总结:首先赋出值为0,在执行时依次累加,各种情况都要表达清楚。

4-6输入一批数,输入0结束,分别计算其中整数的平均值和负数的平均值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<stdio.h>
int main()
{
    int a,b,c,d,e;
    a==0;
    b==0;
    c==0;
    e==0;
    while(1)
    {
        scanf("%d",&d);
        if(d==0)
        {
            break;
        }
        else if(d<0)
        {
            b++;
            e+=d;
        }
        else
        {
            c++;
            a+=d;
        }
    }
    printf("正数的平均数为%f,负数的平均值为%f",(float)a/c,(float)e/b);
    return 0;
}

 知识点总结:正负数符合的条件,用if嵌套,注意平均数的表达。

 实验总结:赋出值为0,选择条件写编程各自求平均值。

4-7输入1000以内所有素数,每行10个,最后输出一个有多少个素数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<stdio.h>
#include<math.h>
int main()
{
    int n=0,a,b,c,d;
    for(a=2;a<=1000;a++)
    {
        c=1;
        d=sqrt(a);
        for(b=2;b<=d;b++)
        {
            if(a%b==0)
            {
                c=0;
                break;
            }
        }
        if(c==1)
        {
            n++;
            if(n%10==0)
            {
                printf("%4d\n",a);
            }
            else
            {
                printf("%4d",a);
            }
        }
    }
    return 0;
}

 

知识点,实验总结:素数的因数只有它本身和1,首先选定c赋予两个值,c为1时说明为素数,反之,n表示素数的个数,与10除余,表示每十个一行。

4-8打印下列图形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
int main()
{
    int i,j;
    for(i=1;i<=5;i++)
    {
        for(j=1;j<=i-1;j++)
        {
            printf(" ");
        }
        for(j=1;j<=11-2*i;j++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

 

知识点,实验总结:注意找规律,通用公式,用for循环,嵌套。

 

posted @   小北ML  阅读(146)  评论(1编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示