输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和懿一直是死循环,谁能帮忙看看

2024-12-01 04:30:57
推荐回答(5个)
回答1:

有一个致命的错误,s没有初始化0;

#include

int main(void)

{

 int a,n,s=0; 

 printf("Input a: "); //这样输出好看点

 scanf("%d",&a); 

 printf("Input n:");//也不容易混淆

 scanf("%d",&n); 

 while(n>=0)//你这种for最好改用while

 { 

  s=a*n+s; 

  a=a*10; 

  n--; 

 } 

 printf("s= %d\n",s);

 return 0; 

回答2:

2 + 22 222。 。 。
程序是2 + 2 * 2 +2 * 2 * 2。 。 。

如果你不这样做溢出检查您可以使用

(INT I = 0;
S. = S + 2 * (NI)* POW(10,I);

}的
考虑溢出阵列持有每个位的数量是太麻烦了,他们希望它

回答3:

#include
int main(void)
{
int a,n,s=0;//s赋初值

printf("Input a, n: ");
scanf("%d",&a);
scanf("%d",&n);
for(;n>=0;){//条件写中间
s=a*n+s;
a=a*10;
n--;
}
printf("s=%d",s);
return 0;
}

回答4:

for(n>=0;;)
这个语句不要这么用;
你换成:
while (n>=0)
即可。

回答5:

int main(void)
{
int a,n,s,t;
printf("Input a, n: ");
scanf("%d",&a);
scanf("%d",&n);
t=a;
s=0;
for( ;n>0;n-- ){
s+=t;
t= t*10+a;
}
printf("s=%d",s);
return 0;
}