第14、15教学周作业

7-2 查找整数
1.实验代码

#include <stdio.h>
int main()
{
    int a[20];
    int b,c,d,e;
    scanf("%d %d",&b,&c);
    for(d = 1,e = 0;d <= b;d = d + 1,e = e + 1)
    {
        scanf("%d",&a[e]);
    }
    d = 1;
    e = 0;
    while(d <= b)
    {
        if(a[e] == c)
        {
            printf("%d",e);
            return 0;
        }
        e = e + 1;
        d = d + 1;
    }
    printf("Not Found");
}

2.设计思路

(1)
第一步:定义输入数字数量,查找数字b,c数组a。
第二步:循环输入数组。
第三步:在循环中判定是否数组中的数字等于查找数字,符合输出并结束,不符合继续循环,结束后输出Not Found。

(2)
1237794-20171203190855522-663795805.jpg
3.本题调试过程碰到问题及解决办法
运行结果发现数字和Not Found一同输出,之后在输出后添加return 0后结果正确。
1237794-20171203195224288-1999454026.jpg

7-3 选择法排序
1.实验代码

#include<stdio.h>
int main()  
{  
    int a[10];
    int b,c,d,f;
    scanf("%d",&b);
    for(c = 0,d = 1;d <= b;c = c + 1,d = d + 1)
    {
        scanf("%d",&a[c]);
    }
    for(d = 1;d <= b;d = d + 1)
    {
        for(c = 0;c < b - d;c = c + 1)
        {
            if(a[c] < a[c + 1])
            {
                f = a[c];
                a[c] = a[c + 1];
                a[c + 1] = f;
            }
        }
    }
    d = 1;
    c = 0;
    while(d <= b)
    {
        if(d == 1)
        {
            printf("%d",a[c]);
        }else
        {
            printf(" %d",a[c]);
        }
        c = c + 1;
        d = d + 1;
    }
}  

2.设计思路

(1)
第一步:定义数组a[10],输入整数b,c,d,f,输入数量。
第二步:循环输入数组a。
第三步:循环b次判断a[c]小于a[c + 1],符合将a[c + 1]和a[c]交换。
第四步:循环输出数组。

(2)
1237794-20171203194944819-2001658864.jpg
3.本题调试过程碰到问题及解决办法
一开始定义数组范围太大,按照题目要求更改后正确。
1237794-20171203195349132-753219445.jpg

7-1 求整数序列中出现次数最多的数
1.实验代码

#include<stdio.h>
int main()  
{  
    int a[1000];
    int e[1000] = {0};
    int b,c,d,f,g,h,m;
    scanf("%d",&d);
    if(d == 1)
    {
        scanf("%d",&m);
        printf("%d 1",m);
        return 0;
    }
    for(b = 0,c = 1;c <= d;b = b + 1,c = c + 1)
    {
        scanf("%d",&a[b]);
    }
    for(c = 1,f = 0,g = 0;c <= d;c = c + 1,f = f + 1,g = g + 1)
    {
        for(b = 0;b < d;b = b + 1)
        {
            if(a[g] == a[b])
            {
                e[f] = e[f] + 1;
            }
        }
    }
    c = 1;
    f = 0;
    while(c <= d)
    {
        if(c == 1)
        {
            h = e[f];
        }else
        {
            if(e[f] >= e[f - 1])
            {
                h = e[f];
                m = f;
            }else
            {
                h = h;
            }
        }
        c = c + 1;
        f = f + 1;
    }
    printf("%d %d",a[m],h);
}

2.设计思路

(1)
第一步:定义数组a[1000], e[1000],整数型b,c,d,f,g,h,m。
第二步:输入数字量,判断输入为1时输入数字再输出数字和1并结束。
第三步:循环输入数组a。
第四步:在循环中判断当数字在数组中相等时数组e加1。
第五步:找出数组e中最大值和对应项。
第六步:输出最大值和项。

(2)
1237794-20171203204030851-1072007800.jpg
3.本题调试过程碰到问题及解决办法
数组定义范围错误,更改后正确。
1237794-20171203230138444-1179315354.jpg

7-1 判断上三角矩阵
1.实验代码

#include <stdio.h>
int main()
{
    int a,b,c,d,e,f;
    int m[10][10];
    scanf("%d",&a);
    e = 1;
    while(e <= a)
    {
        scanf("%d",&b);
        for(c = 0;c < b;c = c + 1)
        {
            for(d = 0;d < b;d = d + 1)
            {
                scanf("%d",&m[c][d]);
            }
        }
        for(c = 0,f = 0;c < b;c = c + 1)
        {
            for(d = 0;d < b;d = d + 1)
            {
                if(c > d)
                {
                    if(m[c][d] != 0)
                    {
                        f = 1;
                    }
                }
            }
        }
        if(f == 0)
        {
            printf("YES");
        }
        else if(f == 1)
        {
            printf("NO");
        }
        if(e < a)
        {
            printf("\n");
        }
        e = e + 1;
    }
} 

2.设计思路

(1)
第一步:定义整数型a,b,c,d,e,f,数组m[10][10]。
第二步:输入待测矩阵的个数a。
第三步:输入数组m[c][d]。
第四步:判断当上三角矩阵不为零时令f等于1。
第五步:判断当f为零时输出YES为1时输出NO。

(2)
1237794-20171203225641366-487288010.jpg
3.本题调试过程碰到问题及解决办法
一开始题意理解不对,经重新审题后正确。
1237794-20171203230346069-1842249070.jpg

要求三
1.git地址
https://git.coding.net/z732511533/ZYS.git
2.截图
1237794-20171203231517647-889137023.jpg
1237794-20171203231603679-414867780.jpg

个人总结
(1)本周你学习了哪些内容?
学习了数组的应用,冒泡排序法,二维数组。
(2)本周所学内容中你觉得哪些是难点?
冒泡排序的升降排序,二维数组的使用。

互评和学习进度
1.点评
高立彬:http://www.cnblogs.com/gao628526/p/7931800.html
班庆泽:http://www.cnblogs.com/wsbqz/p/7965666.html
于耀淞:http://www.cnblogs.com/jsjyys/p/7955576.html
2.表格和折线图

时间代码行数时间1(min)博客字数时间2(min)知识点
11.201204000数组
11.211004000数组
11.221805000数组
11.231604000数组
11.241504000数组
11.251404000数组
11.261004000数组
11.27804000二维数组
11.281004000二维数组
11.29604000二维数组
11.30703000数组
12.01301000数组
12.02201000数组
12.034010587250数组

1237794-20171203233345085-150886942.jpg

转载于:https://www.cnblogs.com/2017023960ZYS/p/7966581.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值