南通纸箱厂:C语言编程

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 02:49:53
作业不懂题目第二弹,请先看题:
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
main()
{
int a,n,count=1;
long int s=0,t=0;
scanf("%d,%d",&a,&n);
while(count<=n)
{
t=t+a;
s=s+t;
a=a*10;
++count;
}
printf("a+aa+...=%ld\n",sn);
这么做的话无法输出具体的a相加的式字,只算了个总和,要怎么改呢?
printf打错了,sn因改为s
我自己改了一下:
#include<stdio.h>
main()
{
int a,n,count=1;
long int s=0,t=0;
scanf("%d,%d",&a,&n);
while(count<=n)
{
t=t+a;
s=s+t;
printf("%d+",t);
a=a*10;
count++;
}
printf("=%ld\n",s);
}
这样可以吧。。。

#include <stdio.h>
#include <math.h>
void printa(int n,char c){
int i;
for(i=1;i<=n;i++) printf("%c",c);
}

char digit2char(int a){
return (char)(a+48);
}

void main(){
int a,n,count=1;
long int s=0,t=0;
char c;
scanf("%d %d",&a,&n);
c=digit2char(a);
while(count<=n){
t=t+a;
s=s+t;
a=a*10;
++count;
}//while calculate sum
for(count=1;count<=n;count++){
printa(count,c);
if(count<n) printf(" + ");
}//print a+aa+aaa
printf("= %ld\n",s);
}

效果
C:\Documents and Settings\Yoi>test
1 5
1 + 11 + 111 + 1111 + 11111= 12345

printf("%d+%d%d...=%ld\n",a,sn)

int i=0;
int k=n;
while(k--)
{
for(i=0;i<n-k;i++)
{
printf("%d",a);
}
printf("+");
}
printf("=%ld\n,sn);

我赞成楼上的

顶楼上的楼上~~~~~~~~~~~~~~