题目要求:求s=a+aa+aaa+aaaa+……+aa…aa(n位)
其中,a的值由键盘输入,位数n也由键盘输入。
int main(void)
{int a,n,b,sum=0,c=1,i;
scanf("%d\n",&a);
scanf("%d\n",&n);
for(i=1;i<=n;i++)
{ if(i!=1)
{for(b=2;b<=i;b++)
c=c10;
a=ac+a;
sum=sum+a;
}
else
{
a=a;
sum=sum+a;
}
c=1;
}
printf("%d",sum);
return 0;
} 输入3,6,理论值是370368,但我这套程序输入两个值之后还不投入运算
scanf模板里不要用\n
什么的, 模板里所有空白字符的作用都是, 吃光所有的空白字符, 包括空格, tab, 换行这些, 你没法要求scanf要读个什么指定字符, 输入不是scanf能决定的.
你得先确保你读到的输入是你预期的值, 用printf先输出读取到的值看对不对,再去看逻辑有没有错误.
可以看下这个, 这里读完了一个整数后, 还吃了很多个换行, 一直到我输入了一个非空的字符
✔︎ tmp cat test.c
#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
scanf("%d\n",&n);
printf("n = %d\n", n);
return 0;
}
✔︎ tmp tcc -run test.c
1234
a
n = 1234
✔︎ tmp
@jakio6: 已经找到bug了,问题出在for循环嵌套上,问题已解决,另外那个scanf(“....”)不加反斜杠也很受用,谢谢!