C语言 百炼成钢3

//题目7:用*号输出空心菱形图案

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

//分析:菱形图案就是上下2个三角形
//abs()  绝对值函数(math.h>) 函数原型: int abs(int i);
//扩展:fabs()绝对值函数  函数原型是double fabs(double x );

void main(){
    //y轴
    //int i =10; i > -11  自上y=10到y=-10
    for (int i =10; i > -11; i--)
    {
        //x轴
        //abs(i)是距y轴空白的大小(因为偶然等于i)
        for (int j = 0; j <abs(i); j++)
        {
            printf(" ");
        }
        //菱形内部的宽度2 * 10 - abs(i)
        for (int k = 0; k < (2 * 10 - abs(i)) + 1; k++)
        {
            //空心菱形两边打印*,
            if (k == 0 || k == (2 * (10 - abs(i))))
            {
                printf("*");
            }
            else{
                printf(" ");
            }

        }
        printf("\n");
    }
    system("pause");
}

//总结:绘制图形大部分需要使用多重循环

分析

//题目8:输出9*9口诀

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

//分析:9*9乘法表,肯定是双for循环,同样分为行和列

void main(){
    for (int i = 1; i < 10; i++)
    {
        for (int j = 1; j < i+1; j++)
        {
            printf("%3d*%d=%d",i,j,i*j);
        }
        //一行换行
        printf("\n");
    }
    system("pause");
}

//题目9:要求输出国际象棋棋盘。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

//分析:国际象棋棋盘由64个黑白相间的格子组成,简单说就是交替输出1,0
//每行8个数,一共8行,双for循环
//判断偶数奇数,我决定num%2,余数只能是1或者0

void main(){
    for (int i = 0; i < 8; i++)
    {
        for (int j = 0; j < 8; j++)
        {
            //判断奇数行还是偶数行
            if (i%2)
            {
                //判断列的奇偶性
                if (j%2)
                {
                    printf(" * ");
                }
                else{
                    printf(" # ");
                }
            }
            else{
                //行的奇偶性首列格子的图案
                if (j % 2)
                {
                    printf(" # ");
                }
                else{
                    printf(" * ");
                }
            }
        }
        printf("\n");
    }
    system("pause");
}

时间: 2024-10-06 20:02:22

C语言 百炼成钢3的相关文章

C语言 百炼成钢21

//题目57:编写一个业务函数,实现字符串(前后各有三个空格,单词前后也均有空格) //" i am student, you are teacher " , //各个单词首字符大写,结果如下" i am student, you are teacher " , //要求1:实现所有接口 70 //要求2:写出测试程序 30 #include<stdio.h> #include<stdlib.h> #include<string.h&g

C语言 百炼成钢22

/* 题目58: 编写一个业务函数,实现按行读取文件.把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出. 函数原型有两个,任意选择其一 要求1:请自己任意选择一个接口(函数),并实现功能:70分 要求2:编写测试用例.30分 要求3:自己编写内存释放函数 */ #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //按行读取文件 int

C语言 百炼成钢27

/* 题目63:编写C++程序完成以下功能: (1)声明一个纯虚函数类Shape(形状),其中包含来计算面积.计算周长的方法: (2)从Shape派生两个类矩形和圆形: (3)从矩形派生正方形: (4)分别实现派生类构造函数.析构函数和其他方法: (5)创建派生类的对象,观察构造函数.析构函数调用次序: (6)利用抽象类做函数参数(基类指针指向子类对象,多态特性),计算不同对象的面积和周长. */ #define _CRT_SECURE_NO_WARNINGS #include<iostream

C语言 百炼成钢17

//题目49:老师将糖果分成若干份,让学生按任意次序领取,第一个领取的,得到1份加上剩余糖果的1/10, //第二个领取的,得到2份加上剩余糖果的1/10,第三个领取的,得到3份加上剩余糖果的1/10,以此类推, //求共有多少个学生,多少份糖果 #include<stdio.h> #include<stdlib.h> //思路:该题的要求是求一个糖果的数量,这个数量必须保证每个学生领取到的糖果都是整份数,并不要求所有学生分的糖果分数一样 //根据多定义变量,简化运算难度规则,定义

C语言 百炼成钢16

//题目46:海滩上有一堆桃子,五只猴子来分.第一只猴子把这堆桃子凭据分为五份,多了一个,这只 //猴子把多的一个扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了 //一个,它同样把多的一个扔入海中,拿走了一份,第三.第四.第五只猴子都是这样做的, //问海滩上原来最少有多少个桃子? #include<stdio.h> #include<stdlib.h> //分析:最少有多少个桃子,说明是满足条件的最小数:假设有X个桃子,第一个猴子的桃子数量是(X-1)/5,

C语言 百炼成钢11

//题目31:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 //判断第二个字母. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> //分析:通过输入的字母判定星期几,可以使用if()else void main(){ char str[7] = { 0 }; scanf("%s",str); switc

C语言 百炼成钢10

//题目28:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第 //3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第一个人大两岁.最后 //问第一个人,他说是10岁.请问第五个人多大? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> //分析:经过阅读,发现f(5)=f(4)+2;f(4)=f(3)

C语言 百炼成钢2

//题目5:输入三个整数x,y,z,请把这三个数由小到大输出. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void sortnum(int *x,int *y,int *z){ int temp = 0; if (*x>*y) { temp = *x; *x = *y; *y = temp; } if (*y>*z) { temp = *z; *z = *y; *y = te

C语言 百炼成钢12

//题目34:对10个数进行排序 #include<stdio.h> #include<stdlib.h> //分析:使用冒泡排序 void main(){ int arr[10] = { 9, 2, 4, 7, 5, 71, 45, 46, 7, 8 }; //定义临时变量 int temp = 0; //冒泡排序 双循环 for (int i = 0; i < 10; i++) { for (int j = i+1; j <10; j++) { if (arr[j-

C语言 百炼成钢25

/* 题目61:编写一个名为removestring的函数,该函数用于从一个字符串中删除一定量的字符. 该函数接受三个参数: 第1参数代表源字符串 第2参数代表需要删除字符的起始位置(位置从0开始) 第3参数代表需要删除的字符个数. eg:字符串"abcd12345efg" removestring(text, 4, 5); 则会删除该字符数组中的字符串wrong以及后面的空格.遗留内容则是字符串abcdefg". */ #include<stdio.h> #in