算法基础课–作业-001
课上我们对C语言的调试进行了操作详解
以及如何监视数组在运行中的大小和地址
这是一份代码:
char oddarr[5];
char evenarr[5];
char arr[10] = { 'a','b','c','d','e','f','g','h','i','j' };
//奇数位置
void odd()
{
int i;
for (i = 0; i < 5; i++)
{
oddarr[i] = arr[2 * i];
}
}
//偶数位置
void even()
{
int i;
for (i = 0; i < 5; i++)
{
evenarr[i] = arr[2 * i + 1];
}
}
int main()
{
int i;
//打印arr
printf("所有字符:");
for (i = 0; i < 10; i++)
{
printf("%c ", arr[i]);
}
odd();
even();
printf("\n奇数位字符:");
for (i = 0; i < 5; i++)
{
printf("%c ", oddarr[i]);
}
printf("\n偶数位字符:");
for (i = 0; i < 5; i++)
{
printf("%c ", evenarr[i]);
}
printf("\n");
return 0;
}
我们经由调试和监控,观察函数和数组动向
最终结果打印:
借此我们对此代码进行需求变更:
1.要求将arr数组中字符改为数字;
2.odd函数功能改为奇数位置求和;
3.even函数功能改为偶数位置求积;
进行断点、逐步、定位三种调试,依次放调试截图 注意查看变量窗口、监控窗口,进行内存监控。
借此我们只需添加两个计算并打印计算结果即可
修改数组类型:
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
对奇数位置函数代码进行修改:
//外围定义sum做和的结果
int sum=0;
//计算
sum+=arr[2*i];
//在上一大括号内打印sum结果
printf("\n奇数和为%d",sum);
对偶数位置函数代码进行修改:
//定义局部变量p做积的结果
int p=1;
//计算
p*=arr[2*i+1];
//同上在上一大括号内打印p的结果
printf("\n偶数积为%d",p);
写代码时要边写边调试
最后我们看修改后整体效果
#define _CRT_SECURE_NO_WARNINGS 1
//作业:
//将arr数组中字符改为数字;
//odd函数功能改为奇数位置求和;even函数功能改为偶数位置求积;
//进行断点、逐步、定位三种调试,依次放调试截图 注意查看变量窗口、监控窗口,进行内存监控。
#include<stdio.h>
char oddarr[5];
char evenarr[5];
char arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//奇数位置
void odd()
{
int i;
int sum = 0;
for (i = 0; i < 5; i++)
{
oddarr[i] = arr[2 * i];
sum += arr[2 * i];
}
printf("\n奇数位之和:%d", sum);
}
//偶数位置
void even()
{
int i;
//
int p = 1;
for (i = 0; i < 5; i++)
{
evenarr[i] = arr[2 * i + 1];
p*= arr[2 * i + 1];
}
printf("\n偶数位之积:%d", p);
}
int main()
{
int i;
//打印arr
printf("所有字符:");
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
odd();
even();
printf("\n奇数位字符:");
for (i = 0; i < 5; i++)
{
printf("%d ", oddarr[i]);
}
printf("\n偶数位字符:");
for (i = 0; i < 5; i++)
{
printf("%d ", evenarr[i]);
}
printf("\n");
return 0;
}
运行调试
自此本文章结束
更多精彩请关注
github:https://github.com/3504579421
gitee:https://gitee.com/BBkoko
欢迎催更