随笔- 62  文章- 1  评论- 5  阅读- 12842 

0.展示PTA总分


1.本章学习总结

1.1 for循环语法

for 循环:

for (初始值;循环持续的条件;循环后需要做的执行语句)
{
循环体//所要执行的语句
}

1.2 while、do while循环语法

while循环:

while(循环执行的条件)
{
循环体
}
//while里的条件很容易误解为跳出循环的条件。

do while循环:

do-while 循环
do
{
循环体
} while (循环执行的条件); //无论是否满足条件,第一个循环体会被执行然后跳出循环。

1.3 跳出循环相关语句break\continue

循环中需要合理利用break,continue。
break是跳出这一循环,而continue则是跳过下面的语句,再继续执行这一循环体。
两者可以合理的利用if控制。

#include <stdio.h>
int main()
{
int n = 99;
int flag = 1;
int i;
for (i = 1; i <= 99; i++)
{
if (i == 2)
{
break;
}
else if (i == 1) {
continue;
}
flag = 0;
}
printf("flag = %d\n", flag);
printf("i = %d",i)
return 0;
}

这段代码最后的输出结果为

则在i=1时,程序跳过了flag=0的语句,重新进入了循环,在i=2的执行语句中用break结束了循环。

1.4 循环嵌套

嵌套循环为在一个循环里再使用一个循环的语句,与if的嵌套类似。

例如这一题
我们需要打印九行的乘法,每一行从1列逐渐递增到9列,列的个数与行的位数相同。这则需要我们使用嵌套循环来完成打印。

#include<stdio.h>
int main()
{
int i, j, n, k;
scanf("%d", &n);//输入行数
for (i = 1; i <= n; i++) {//用i来控制行数
for (j = 1; j <= i; j++)
//用j来控制当前行的列数,j<=i则列数不超过所在行的位数
{
printf("%d*%d=%d", j, i, j * i);
if (i * j >= 10)
{
printf(" ");
}
else printf(" ");
}
printf("\n");
}
}

嵌套循环中需要注意的是初始化的位置,如果是计算一行数的和,则在小循环结束后应该将初始化,
则sum=0应放在大循环的开头或者小循环完后。

学习体会

2 编程技巧总结

字符如何转数字、数字逆序问题

字符转为数字:
x='a'-'0'//a为数字

数字逆序:

int number;
int sum=0;
while (x > 0)
{
number = x % 10;
x /= 10;
sum = sum * 10 + number;
}//将数字x逆序

字符的转换

字符小写字母转大写字母:
ch=ch-'a'+'A'

字符大写转小写:
ch=ch-'A'+'a'

字符往后移位:
ch = (ch + 1 - 'a') % 26 + 'a'

四则运算

switch(1+rand()%4)//利用随机数随机产生1-4的数
{
case 1://再根据随机数选择加减乘除
result += x;
break;
case 2:
result -= x;
break;
}

3.PTA实验作业

3.1 数列求和问题

3.1.1 流程图或伪代码介绍思路

数列中有两个重要的数 一个sum和一个是每次循环需要加上的数count
再利用flag来控制每一次是加或者减

3.1.2 代码截图

3.1.3 PTA提交列表及说明

3.2 图形打印问题

3.2.1 数据处理

1.输入高度与起始的字符
2.用坐标的方法建立起该菱形的坐标轴,设k=h/2,则-k~k刚好为h。
3.先用变量i初始化为-k来控制行,由图形可知最长行的行数等于高度,则用j初始化为-k来控制列数
4.根据行和列与图形的关系来打印字符

3.2.2 代码截图

3.2.3 PTA提交列表及说明


说明:开始难以想到怎么控制上面的一部分与下面的一部分,可能需要写两个循环,但是由于他的对称可以得到利用坐标的方法更简易的能打印出图形。

3.3 自选一题,介绍printf调试如何检查错误

3.3.1 单步调试截图

利用每次循环后打印出的数的值与sum的值来检查错误。

第一次打印出来的值正确
再继续执行,直到检查出相对应的错误项来分析错误的原因

则其原因为while语句过早结束循环,也就是精确值不够所以得出错误的结果,则需要更改精确值

3.3.2 代码截图

3.3.3 PTA提交列表及说明

说明:sample并不对,所以可以先用sample来检查代码的错误,
并侧重检查每次出来的值,可能为小数未处理好等等。
经过调试,分析出最后一次的count小数点后第三位较小,则此时的原因应该是还需要加上更多的count,则需要调整精度,让while语句执行更多的循环。

 posted on     阅读(272)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示

目录导航