C语言程序设计作业03:第十周作业

C语言程序设计作业03:第十周作业

这个作业属于哪个课程C语言程序设计II
我在这个课程的目标是熟悉掌握二维数组和字符数组
这个作业在那个具体方面帮助我实现目标了接一些字符库函数, 运用二维数组
参考文献C语言程序设计教程 百度 cpp.com

1.PTA作业

1.PTA实验作业在这里插入图片描述

1.1找出矩阵中最小值所在的位置

内容:将1个m x n的矩阵存入1个m x n的二维数组中,找出最小值以及它的行下标和列下标,并输出该矩阵。

1.1.1 数据处理

**数据表达:定义i,j,m,n,r,c;和二维数组a[50][50];
其中 i 表示列 j 表示行;
**数据处理:
输入m,n;
表示输入的行列数;
进行一个外循环 i 从0开始步长为1,当 i<n时跳出循环;
再设置一个内循环 j 从0开始步长为1,当 j<n时跳出循环;
再内循环中分别输入矩阵的行和列;
赋值r和c为0;
再内外循环输入矩阵的行和列;
在内循环中判断最小值及其所在位置;
在外循环尾端打印一个换行符;
最后输出最小值及其所在位置;

1.1.2实验代码截图

#include <stdio.h>
int main()
{
    int i,j,m,n,min;
    int r,c;
	int a[50][50]; 
	scanf("%d%d",&m,&n);
	for(i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
    r=c=0;
    for(i=0;i<m;i++)
    {
		for(j=0;j<n;j++)
		{
			printf("%4d",a[i][j]);
            if(a[i][j]<a[r][c])
            {
                r=i;
                c=j;
            }
		}
		printf("\n");				
	}
	printf("min = a[%d][%d] = %d",r,c,a[r][c]);
    return 0;
}
在这里插入代码片

1.1.3造测试数据

输入数据输出数据
3 2 5 6 9 7 3 85 6 9 7 3 8 min = a[2][0] = 3
3 2 7 9 4 6 1 37 9 4 6 1 3 min=a[2][0] = 1

1.1.4PTA提交列表及说明

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

提交列表说明:
1.段错误:在定义数组时分配的空间较小;发现后扩大了空间容量;
2.答案编译错误:矩阵没有成型,发现是没有加换行;在外循环后加上换行才解决
3.答案编译错误:输出结果并不是最小值的位置;后面经过调试,定义了r ,c才找到相印的位置;

1.2短号

内容:在某年的校程序设计竞赛中,报名参赛的同学很多都只留了短号,这让通知获奖同学来取获奖证书的H老师很是困扰,因为他没有短号!痛定思痛,H老师也要办短号了。这里约定短号为手机号码的最后六位,但如果取出的最后六位是以0开头的,要改为以9开头。现给出H老师手机号码,请确定他的短号。

**数据表达:
定义 i 和 T;T表示组数;
用long long int 定义str[2]
**数据处理
输入T
设置一个循环为str数组赋值
设置第二个循环输出str数组内所有的数
并使其取模后六位,判断取模后第一位是否为0,若为0,则赋值为9,并与后5位相加
最后输出
每次循环换行一次;

#include <stdio.h>
int main()
{
	int i,T;
	long long int str[2];
	scanf("%d",&T);
	for(i=0;i<2;i++)
	{
		scanf("%lld",&str[i]);
	}
	for(i=0;i<2;i++)
	{
		printf("%lld ",str[i]);
		str[i]=str[i]%1000000;
		if( str[i]/100000==0 )
		{
			str[i]=900000+str[i]%100000;
			printf("%lld",str[i]);
		}
		else
		{
			printf("%lld",str[i]);
		}
		printf("\n");
	}
	return 0;
}
在这里插入代码片

1.2.3造测试数据

输入数据输出数据
1311002345613110023456 923456
1311112345613111123456 123456

1.2.4PTA提交列表及说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

提交列表说明:
1.答案错误:输出是两组数据答案都一样,是没有发生判断;经过调试可以得到,得出是取模问题;已解决。
2.编译错误:用long long int 定义未用%lld输出无法得到答案,通过dev测试解决。

2.代码互评

同学的代码

请添加图片描述

同学的代码

请添加图片描述
请添加图片描述

自己的代码

在这里插入图片描述

不同的点:
1.同学数组开辟的空间远远大于我开辟的空间;
2.同学没有多余定义,而我多余定义了一个min;
3.在输出上同学输出到位,细节把控得很好;

3.学习总结

3.1学习进度条

周/日期这周所花的时间代码行学到的知识点简介目前比较迷惑的问题
第六周50h200数据类型补码,反码的与、或运算
第七周30h150输入输出无太大问题
第八周20h130选择语句嵌套式逻辑不太清楚
第九周20h150循环语句循环语句和选择语句的嵌套还是没搞清
第十周25h180数组数组使用后对其作用不太清除

3.2学习内容总结和感悟

3.2.1学习内容总结

在这里插入图片描述

3.2.2学习体会

1.听课和做题过程中,我了解到了数组的作用以及其使用方法;
2.在做题上还是有些细节把控不到位输出容易漏;
3.在做题时虽然知道怎么下手,但是还是会写错。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值