两个for循环,不算有什么步骤,语法分析和逻辑分析。真正用在工作
上的程序,复杂的有时需要用时序图、序列图或UML图来分析。
1、语法和逻辑处理,这个是最基本的基本功。一定要扎实。
2、要有分层分离的概念,从整个框架来理解代码,最好可以作图辅助分析。
3、了解技术相关的关键词以及功能作用,积少成多。
4、c语言面向过程,C++、java面向对象。两种思想都需要学习并融合,
才有机会成为牛人。
【解题思路】本题的关键是要算出每一项的值,比如当a=5时,那么第1项必须是5,第2项55,第三项555……,可以用循环嵌套来解决这个问题:外循环让i=1到n,求出从第1项到第n项的值,并累加;内循环必须求第i项的值,可以先让第i项的值sn=a,然后从第2项开始,让j=2到i,每次执行内循环时,让sn=sn*10+a。比如当i=6时,求第6项的值,必须先让sn=5,然后执行5次sn=sn*10+5,就会得到555555。最后再把每一项累加,并输出。具体代码如下:
【程序代码】
#include <iostream> //控制台 *** 作头文件
int main() //主函数
{int a,n,sn,s,i,j //a,n,sn,s和两个循环变量
do{printf("请输入a(1-9):") //输入提示
scanf("%d",&a)}while(a<1||a>9)//输入一个1-9的数给a
do{printf("请输入n:") //输入提示
scanf("%d",&n)}while(n<1) //输入一个大于1的数给n
printf("S%d=",n) //输出Sn=
for(s=0,i=1i<=ni++) //从第1项至第n项
{for(sn=a,j=2j<=ij++) sn=sn*10+a//算出第i项的值
printf("%d",sn) //输出第i项的值
if(i<n) printf("+") //如果不是最后一项在后面输+号
s=s+sn} //把第i项累计加起来
printf("=%d\n",s) //输出最后得数
printf("\n") //输完结果再空一行
system("PAUSE") //屏幕暂停,以便看到显示结果
return 0} //结束程序
【运行结果】
以上程序在DEV C++中运行通过,结果准确无误。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)