博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二次作业
阅读量:6003 次
发布时间:2019-06-20

本文共 1057 字,大约阅读时间需要 3 分钟。

随着C++的越发深入的学习,难度越发加大,而我比较薄弱的点主要是结构体和现在学习的指针的应用。结构体类型中,我一直不能正确地应用,在各类数据多起来的时候,就会乱了阵脚。后来在我对结构体PPT、书本及后期作业的仔细反复查看后,才对结构体有了较为熟练度应用。而我们现在在学的指针,因为要点很多,让我在“&”和“*”之间不能分清。并且指针类型使用时需要的严苛的格式条件,让我有时摸不到头脑。更不用说后来加入的用指针表示字符串、数组了。这些我不懂的地方时刻提醒着我,让我抓紧时间去复习,去弄请我现在还不懂的地方。

在数组的学习过程中当然也有颇具挑战性的题目。就像cpp7编程题第二题:给定某数字A(1A9)以及非负整数N(0N100000),求数列之和S=A+AA+AAA++AAA(N个A)。例如A=1, N=3时,S=1+11+111=123。这道题目要注意a[i]的赋值不能由小到大,而是要从大到小,这样就能方便“%”在数组中的使用。现算法如下:1.定义并输出A、N;2.定义并赋值a[i],a[i]== (N - i)*A; 3.当a[i]!=0时,将A用a[i]%10表示,再用叠加法,最终输出结果。代码如下:

#include<iostream>

using namespace std;
int a[100000] = {0};
int main()
{
 int A, N;
 int i, j;
 cin >> A >> N;
 if(N != 0)
 {
  for(i = 0;i<N; i++)
  {
   a[i] = (N - i)*A;
  }
  while(a[j] != 0)
  {
   A = a[j] % 10;
   a[j + 1]= a[j] / 10 + a[j + 1];
   a[j] = A;
   j++;
  }
  for( int i = j - 1;i>=0;i-- )
  {
   cout << a[i];
  }
 }
 else cout<< "0";
 return 0;
}

这道题主要是循环与数组的运用,要求思路清晰,解决之前找到相应的流程和算法。

存在的问题主要是a[i]的赋值是要从高位到低位,这一点时我在两种赋值中逐渐找到的真正规律。其次,本体要求最后输出的数字后无空格,这点一开始我没关注,最后显示结构错误,后来我用循环和if语句解决了这个问题。

学无止境,在C++的道路上我还有很长一段路要走。

 

转载于:https://www.cnblogs.com/247403wy/p/10069717.html

你可能感兴趣的文章
清洗洗衣机
查看>>
springBoot中碰见的问题
查看>>
java基础
查看>>
人民的名义评论
查看>>
基于 CSS3 Media Queries 的 HTML5 应用
查看>>
表单的理解
查看>>
linux下yum安装指定的mysql版本
查看>>
In与Exists的区别
查看>>
Digit Counting, ACM/ICPC Danang 2007, UVa 1225
查看>>
两种思路实现单页面路由的功能
查看>>
iframe自适应高度和宽度
查看>>
ubuntu14.04英文环境下安装中文输入法(转载)
查看>>
工作总结--琐碎操作和业务
查看>>
杭电_ACM_Count the Trees
查看>>
linux上安装mysql,亲试成功
查看>>
apache中开启rewrite
查看>>
linux怎么发邮件
查看>>
Expect: 100-continue
查看>>
objective-c 在线视频 学习资料...
查看>>
蓝桥杯省赛[新手向题解] 2019 第十届 C/C++ A组 第九题 DP
查看>>