计算机科学与技术第四次上机实验,计算机科学与技术第4次上机实验.docx

哈尔滨工程大学

《程序设计基础》实验报告

基础实践一

姓 名: 麦豆 班 级:

学 号:

实验时间: 2018 年 5 月 3 日

成绩

哈尔滨工程大学计算机基础课程教学中心

实验题目1:写一个函数,Sn=a+aa+aaa+···+aa···a

求多项式的前n项和,其中a是一个数字。n由键盘输入。

设计思想:声明函数sum,利用循环求得sum最终值并返回sum值

实验代码及注释:

#include

int sum(int a,int n);//sum函数声明

int main()

{

int n;

int a;

printf(" 请输入a,n:\n");

scanf("%d%d",&a,&n);

printf("前%d项和为%d\n",n,sum(a,n));//调用函数sum

return 0;

}

int sum(int a,int n)

{

int sum=0;

int i;

int count;

count=0;

for(i=1;i<=n;i++)

{

count=count*10+a;//每次乘10加a

sum=sum+count;

}

return sum;

}

验证与结论:

总结与心得体会:声明函数时后面一定要有分号,但写函数时不需要。

实验题目2:编程实现求10000以内的回文数。其中,函数实现判断任一正整数是否为回文数。所谓回文数就是将一个数从左向右读与从右向左读是一样的,例如121和1331都是回文数。

设计思想:声明judje函数,判断number是否为回文数。在函数内部先判断数字number位数,由于回文数为对称结构,故通过位数来确定判断次数,每次判断数字首位与个位然后去掉首位与个位再次判断直至循环结束。另外需要对个位数另行判断,个位数一定为回文数。如果为回文数返回1,否则返回0。

实验代码及注释:

#include

#include

int judje(int number);//声明judje函数

int main()

{

int i;

for(i=0;i<10000;i++)

{

if(judje(i)==1)//judje为1的数输出

printf("%d\t",i);

}

return 0;

}

int judje(int number)//判断number是否为回文数

{

int judje,i=0,middle_number,parity,j;//回文数判断变量,数字位数,数字位数中间变量,数字位数奇偶

int middle_number2;//取掉首位个位剩余数

int shouwei,gewei;//首位,个位

middle_number2=number;//全部赋初值

middle_number=number;

do //判断数字位数

{ i++;

middle_number=middle_number/10;//对数字除以10直到为0

}

while (middle_number!=0);

parity=i/2;//运算次数

for (j=1;j<=parity;j++)

{

shouwei=middle_number2/pow(10.0,(double)(i-2*j+1));//首位数字

gewei=middle_number2%10;//个位数字

middle_number2=(middle_number2-shouwei*pow(10.0,(double)(i-2*j+1)))/10;//将首位与个位去除后剩余的数

if((shouwei==gewei) && j==parity)//个位与首位相等且都已比较完成

{

judje=1;//1为真

}

else if(shouwei!=gewei)

{

judje=0;

break;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值