交作业(循环相关)

这篇文章详细介绍了使用C语言实现的一系列基础编程任务,包括判断闰年、偶数检查、计算绝对值、打印字母、数列求和、数字逆序、特定序列求和、阶乘计算、展示100以内数列以及各种星号和几何图形的绘制,涉及循环和条件语句的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

交作业(循环相关)

1. 判断是否为闰年
/* 
用户输入一个年份,判断这个年份是不是一个闰年。
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int year = 0;

    printf("请输入要判断的年份:");
    scanf("%d", &year);

    if (0 == year % 4 && 0 != year % 100 || 0 == year % 400)
    {
       printf("%d是闰年\n", year );
    }
    else
    {
        printf("%d不是闰年\n", year );
    }
    
    return 0;
}
2. 判断是否为偶数
/* 
用户输入一个整数,判断是不是偶数。
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int num = 0;

    printf("请输入一个整数:");
    scanf("%d" , &num);

    if (0 == num % 2)
    {
        printf("%d 是一个偶数 \n" , num);
    }
    else
    {
        printf("%d 不是偶数\n", num);
    }
    
    return 0;
}
3. 计算两个整数之差的绝对值
/* 
输入两个整数,打印两数之差的绝对值。
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int num1 = 0;
    int num2 = 0;
    int dif = 0;

    printf("请输入两个整数:");
    scanf("%d %d", &num1,&num2);

    dif = num1 - num2;
    if (dif < 0)
    {
        dif = 0 - dif;
    }
    printf("两数之差的绝对值为:%d\n", dif);
    
    return 0;
}
4. 打印 26 个字母
/* 
多种方法打印26个小写字母。
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    for (char ch = 'a'; ch <= 'z'; ch++)
    {
        printf("%c ", ch);
    }
    printf("\n");
    
    return 0;
}
5. 输入两个整数计算两数之间所有数的和
/* 
例如:
	输入 5  8;
	计算 5 + 6 + 7 + 8;
	输出 26.
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int num1 = 0;
    int num2 = 0;
    int sum = 0;

    printf("请输入两个整数:");
    scanf("%d %d", &num1,&num2);

    if (num1 > num2)
    {
        num1 += num2;
        num2 = num1 - num2;
        num1 = num1 - num2;
    }
    
    for (int i = num1; i <= num2; i++)
    {
        sum += i;
    }

    printf("最终结果为:%d\n", sum);
    
    return 0;
}

6. 整数逆序输出
/* 
整数逆序输出, 例如输入一个整数12345,输出5 4 3 2 1
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int num = 0;
    printf("请输入一个整数:");
    scanf("%d",&num);

    while (num > 0)
    {
        printf("%d ", num % 10);
        num /= 10;
    }
    printf("\n");
    
    return 0;
}
7. 计算奇数一正一负相加到101
/* 
1 - 3 + 5 - 7 + 9 - 11 ... - 99 + 101 的结果
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int sum = 101 - 2 * 25;

    printf("最后结果为:%d\n", sum);
    
    return 0;
}
8. 15 的阶乘
/* 
15的阶乘
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    long sum = 1;

    for (int i = 1; i <= 15; i++)
    {
        sum *= i;
    }
    printf("最终结果为:%ld\n", sum);

    return 0;
}
9. 展示 100 以内的所有偶数
/* 
展示 100 以内所有的偶数
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    for (int i = 0; i <= 100; i += 2)
    {
        printf("%d\n", i);
    }
    
    return 0;
}
10.展示 100 以内的所有奇数
/* 
展示 100 以内所有的奇数
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    for (int i = 1; i < 100; i += 2)
    {
        printf("%d\n", i);
    }
    
    return 0;
}
11. 展示符号 *
/* 
展示出以下图形:
			*****
			*****
			*****
			*****
			*****
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int line = 0;
    printf("请输入想要展示的行数:");
    scanf("%d", &line);
    
    for (int i = 0; i < line; i++)
    {
        for (int j = 0; j < line; j++)
        {
            printf("%c", '*');
        }
        
        printf("\n");
    }
    
    return 0;
}
12. 展示直角 *
/* 
展示出以下图形:
			*
 			**
			***
			****
			*****
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int line = 0;
    printf("请输入想要展示的行数:");
    scanf("%d", &line);
    
    for (int i = 0; i < line; i++)
    {
        for (int j = 0; j < i + 1; j++)
        {
            printf("%c",'*');
        }
        
        printf("\n");
    }
    
    return 0;
}

13. 展示三角 *
/* 
展示出以下图形:
			 *
     	    ***
    	   *****
   		  *******
  		 *********
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int line = 0;
    printf("请输入想要展示的行数:");
    scanf("%d", &line);

    for (int i = 0; i < line; i++)
    {
        for (int j = 0; j < line - i; j++)
        {
            printf("%c", ' ');
        }
        for (int j = 0; j < 2 * i + 1; j++)
        {
            printf("%c",'*');
        }

        printf("\n");
        
    }
    
    return 0;
}
14. 展示菱形 *
/* 
展示出以下图形:
			 *
     	    ***
    	   *****
   		  *******
  		 *********
   		  *******
 		   *****
 		    ***
  		     *
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int line = 0;
    int judgment = 1;

    while (judgment)
    {
        printf("请输入想要展示的行数:");
        scanf("%d", &line);

        if (0 == line % 2)
        {
            printf("输入行数有错误,行数必须为奇数,请重新输入!\n");
            continue;
        }

        // 上半部分内容
        // 控制上半部分的一共多少行,当前为:总行数 / 2 + 1 行
        for (int i = 1; i <= line / 2 + 1; i++)
        {
            // 处理空格:上半部分总行数 - 当前第 i 行
            for (int j = 1; j <= line / 2 + 1 - i; j++)
            {
                printf("%c", ' ');
            }
            // 处理星星个数 :当前第 i 行 * 2 - 1
            for (int j = 1; j <= i * 2 - 1; j++)
            {
                printf("%c", '*');
            }
            printf("\n");
        }
        // 下半部分
        // 控制下半部分一共多少行,当前为:总行数 / 2 行
        for (int i = 1; i <= line / 2; i++)
        {
            // 控制空格个数:对应当前第 i 行
            for (int j = 1; j <= i; j++)
            {
                printf("%c", ' ');
            }
            // 控制星星个数:总行数 - 2 * 当前第 i 行
            for (int j = 1; j <= line - 2 * i; j++)
            {
                printf("%c", '*');
            }

            printf("\n");
        }
        judgment = 0;
    }
    return 0;
}
15. 展示菱形字母圈
/* 
展示出以下图形:
              A
             ABA
            ABCBA
           ABCDCBA
          ABCDEDCBA
           ABCDCBA
            ABCBA
             ABA
              A
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int line = 0;
    int judgment = 1;

    while (judgment)
    {
        printf("请输入想要展示的行数:");
        scanf("%d", &line);

        if (0 == line % 2)
        {
            printf("输入行数有错误,行数必须为奇数,请重新输入!\n");
            continue;
        }

        // 上半部分内容
        // 控制上半部分的一共多少行,当前为:总行数 / 2 + 1 行
        for (int i = 1; i <= line / 2 + 1; i++)
        {
            // 处理空格:上半部分总行数 - 当前第 i 行
            for (int j = 1; j <= line / 2 + 1 - i; j++)
            {
                printf("%c", ' ');
            }
            
            for (char j = 'A'; j <= 'A' + i - 1; j++)
            {
                printf("%c", j);
            }
            for (char j = 'A' + i - 2; j >= 'A'; j--)
            {
                printf("%c", j);
            }
            printf("\n");
        }
        // 下半部分
        // 控制下半部分一共多少行,当前为:总行数 / 2 行
        for (int i = 1; i <= line / 2; i++)
        {
            // 控制空格个数:对应当前第 i 行
            for (int j = 1; j <= i; j++)
            {
                printf("%c", ' ');
            }
            
            for (int j = 'A'; j <= 'A' + line / 2 - i; j++)
            {
                printf("%c", j);
            }
            for (int j = 'A' + line / 2 - i - 1; j >= 'A'; j--)
            {
                printf("%c", j);
            }

            printf("\n");
        }
        judgment = 0;
    }
    return 0;
}
16. 展示菱形圈圈
/* 
展示出以下图形:
             ****#****
             ***#*#***
             **#***#**
             *#*****#*
             #*******#
             *#*****#*
             **#***#**
             ***#*#***
             ****#****

提示: 绝对值
*/
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int line = 9;
    int judgment = 1;

    while (judgment)
    {
        printf("请输入想要展示的行数:");
        scanf("%d", &line);

        if (0 == line % 2)
        {
            printf("输入行数有错误,行数必须为奇数,请重新输入!\n");
            continue;
        }

        // 控制上半部分
        for (int i = 1; i <= line / 2 + 1; i++)
        {
            for (int j = 1; j <= line / 2 + 1 - i; j++)
            {
                printf("%c", '*');
            }

            for (int j = line / 2 + 2 - i; j <= line / 2 + i - 1; j++)
            {
                if (j == line / 2 + 2 - i)
                {
                    printf("%c", '#');
                }
                else
                {
                    printf("%c", '*');
                }
            }
            for (int j = line / 2 + i; j <= line; j++)
            {
                if (j == line / 2 + i)
                {
                    printf("%c", '#');
                }
                else
                {
                    printf("%c", '*');
                }
            }

            printf("\n");
        }
        // 控制下半部分
        for (int i = 1; i <= line / 2; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                printf("%c", '*');
            }

            for (int j = i + 1; j <= line - i - 1; j++)
            {
                if (j == i + 1)
                {
                    printf("%c", '#');
                }
                else
                {
                    printf("%c", '*');
                }
            }

            for (int j = line - i; j <= line; j++)
            {
                if (j == line - i)
                {
                    printf("%c", '#');
                }
                else
                {
                    printf("%c", '*');
                }
            }

            printf("\n");
        }
        judgment = 0;
    }

    return 0;
}

部分优化

1. 展示菱形使用 abs(绝对值)
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char const *argv[])
{
    int line = 9;
    int judgment = 1;

    while (judgment)
    {
        printf("请输入想要展示的行数:");
        scanf("%d", &line);

        if (0 == line % 2)
        {
            printf("输入行数有错误,行数必须为奇数,请重新输入!\n");
            continue;
        }

        for (int i = -line/ 2; i < line / 2 + 1; i++)
        {
            for (int j = -line / 2; j < line / 2 + 1; j++)
            {
                if (abs(j) <= line / 2 - abs(i))
                {
                    printf("%c", '*');
                }
                else
                {
                    printf("%c", ' ');
                }
            }
            printf("\n");
        }
        judgment = 0;
    }

    return 0;
}
2. 展示字母圈用abs
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char const *argv[])
{
    int line = 9;
    int judgment = 1;

    while (judgment)
    {
        printf("请输入想要展示的行数:");
        scanf("%d", &line);

        if (0 == line % 2)
        {
            printf("输入行数有错误,行数必须为奇数,请重新输入!\n");
            continue;
        }

        for (int i = -line / 2; i < line / 2 + 1; i++)
        {
            for (int j = -line / 2; j < line / 2 + 1; j++)
            {
                if (abs(j) <= line / 2 - abs(i))
                {
                    for (int k = 0; k <= line / 2 - abs(i); k++)
                    {
                        if (abs(j) == line / 2 - abs(i) - k)
                        {
                            printf("%c", 'A' + k);
                        }
                    }
                }
                else
                {
                    printf("%c", '*');
                }                
            }
            printf("\n");
        }
        judgment = 0;
    }

    return 0;
}
3. 展示菱形圈用abs
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char const *argv[])
{
    int line = 9;
    int judgment = 1;

    while (judgment)
    {
        printf("请输入想要展示的行数:");
        scanf("%d", &line);

        if (0 == line % 2)
        {
            printf("输入行数有错误,行数必须为奇数,请重新输入!\n");
            continue;
        }

        for (int i = -line/ 2; i < line / 2 + 1; i++)
        {
            for (int j = -line / 2; j < line / 2 + 1; j++)
            {
                if (abs(j) == line / 2 - abs(i))
                {
                    printf("%c", '#');
                }
                else
                {
                    printf("%c", '*');
                }
            }
            printf("\n");
        }
        judgment = 0;
    }

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值