一道C语言编程题求解

第5题的程序怎么写?能不能讲一下这个程序的各个步骤?我写着写着就蒙了...... 第5题的程序怎么写?能不能讲一下这个程序的各个步骤?我写着写着就蒙了... 展开
 我来答
cdyzxy
2019-09-24 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3726万
展开全部
#include<stdio.h>
void main() { int a,n,s,t,i;
scanf("%d%d",&a,&n); s=0; t=0;
for ( i=0;i<n;i++ ) {
t*=10; t+=a; s-=t;
}
s+=t; s+=t; printf("%d\n",s);
}
首先这是一个累和的题目,完成方法就是循环n次,向求和变量s上边加n项,一般循环变量i
其次,观察每项取值之间的关系,这题是每项都是前一项乘以10再加a得到
这题也没有项顺序关系,每项都是减法,因此可以简化成求累减
每项用一个变量t来算,一开始初值为0,当前项就是t乘以10然后加a,于是第1项为a,第2项为a*10+a=aa,...,循环n次得到最大那个数
具体到程序,为简单起见,求累减,得到的是-aaa...aaa-...-aaa-aa-a,因此加上两次最大值得到aaa...aaa-...-aaa-aa-a的值输出.
这种多项式求和,一般是要分析每项与前项的关系,或者与循环变量取值之间的关系,每项的符号如果需要的话可以单用一个变量来控制,比较关键的是各变量的初值要赋值正确.
XNF阿萨斯
2019-09-24 · TA获得超过115个赞
知道答主
回答量:115
采纳率:35%
帮助的人:15.2万
展开全部
#include <stdio.h>

int main()
{
static int input_a, input_n, sum[9], \
add_sign, beilu = 1, \
sub_sign , sub_sum ; \

printf("请输入 a: ");
scanf("%d", &input_a);
printf("请输入 n: ");
scanf("%d", &input_n);
if ((input_a < 1 || input_a > 9) || (input_n < 1 || input_n > 9)) return; //输入范围不符合就返回.

sub_sign = input_n; //赋值给减法运算标识,用减法标记的值为最大值的数组指针
while (--input_n >= 0)
{
for (add_sign = 0; add_sign <= input_n; add_sign++)
{
sum[input_n] += input_a * beilu; //存值
beilu = beilu * 10;
}
beilu = 1; //倍数初始化
printf("%d\r\n", sum[input_n]); //打印
}

printf("初始值: %d\r\n", sub_sum);
while (-- sub_sign >= 0) //减法运算
{
sub_sum -= sum[sub_sign - 1];
}
printf("计算得到值为:%d", sub_sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大维
2019-09-24 · 郑州西亚斯学院副教授
大维
郑州西亚斯学院副教授
采纳数:111 获赞数:366
发表论文14篇。编写教材5部。擅长微控制器应用技术和网络技术

向TA提问 私信TA
展开全部
#include "stdio.h"
#include "stdafx.h"

int main(int argc, char* argv[])
{
int i,j,a,n,res;
long buf[10] = {0};
printf("plese input a n\n");
scanf("%d %d",&a,&n);
for( i = n ; i >= 0 ; i--) //产生数字并存入数组
{

for( j = 0 ; j <= i ; j++)
buf[i] = buf[i]*10 + a;
}

for(i = 0 ; i < n ; i++)
printf("%ld " , buf[i]);

res = buf[n - 1];
for(i = 0 ; i < n - 1 ; i++) //求差
res -= buf[i];

printf("resis %ld " , res);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinaboyzyq
2019-09-24 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3255万
展开全部
#include<stdio.h>
int main()
{
int a,n;
printf("intput a n\n");
scanf("%d%d",&a,&n);
int b[n],i,r1=0,r2=0;
for(i=0;i<n;i++)
r2=r1=r1*10+a;
for(i=0;i<n;i++)
{
r1=r1/10;
r2=r2-r1;
}
printf("\n%d\n",r2);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuzhouliuying
高粉答主

2019-09-25 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.5亿
展开全部

#include <stdio.h>

int main(){

int a,n,m=0,s=0;

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

while(n---1)

{m=m*10+a;s+=m;}

printf("%d",m*10+a-s);

return 0;

}

//运行示例:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式