--------------------------------
161
-------------------------------
#include<stdio.h>
#include<math.h>
void main()
{
unsigned long a,n,s=0,i,x;
scanf("%lu %lu",&a,&n);
for(i=0,x=n;i<=n;i++,x--)
{
s+=pow(10,i)*a*x;
}
printf("%d",s);
}
这个程序我在电脑上没看出什么问题,但是交到考试系统就答案错误
应该是在输入某个符合条件的值的时候答案不对
第1个回答 2012-12-05
你的不对,你的算式和题里面要求的根本就不一样,你好好看看,尤其是你的s+=pow(10,i)*a*x;这句。我写了个,也验证了,你看看
#include <stdio.h>
int main()
{
int a,n,i;
unsigned long result=0,temp=0;
printf("Input a and n:");
scanf("%d %d",&a,&n);
for(i=0;i<n;i++)
{
temp=temp*10+a; //计算本次要加的数,2、22、222……
result+=temp;
}
printf("%lu",result);
return 0;
}追问
#include <stdio.h>
int main()
{
int a,n,i;
unsigned long result=0,temp=0;
printf("Input a and n:");
scanf("%d %d",&a,&n);
for(i=0;i<n;i++)
{
temp=temp*10+a; //计算本次要加的数,2、22、222……
result+=temp;
}
printf("%lu",result);
return 0;
}追问
结果是对的就可以过的
第2个回答 2012-12-05
呵呵,我又来了:
#include<stdio.h>
int main(){
int i,a,n,s1=0,s2=0;
scanf("%d%d",&a,&n);
for(i=0;i<n;i++){
s1=s1*10+a;
s2=s2+s1;
}
printf("%d",s2);
return 0;
}
呵呵,简单吧。
考试系统是自动测试的,一些小错误就可能通不过,在提交的时候要注意空格、类型以及一些函数的使用尽量要规范。追问
#include<stdio.h>
int main(){
int i,a,n,s1=0,s2=0;
scanf("%d%d",&a,&n);
for(i=0;i<n;i++){
s1=s1*10+a;
s2=s2+s1;
}
printf("%d",s2);
return 0;
}
呵呵,简单吧。
考试系统是自动测试的,一些小错误就可能通不过,在提交的时候要注意空格、类型以及一些函数的使用尽量要规范。追问
你的确实通过了,但是你觉得我的答案的问题出在哪。。。
追答你的方法算出来的结果是对的,但不符合题目里的2+22+222+……的要求。
追问我们这个考试系统只要结果对了就行的。。。关键他说我结果不对 我觉得是某些特殊值答案错误
你找到没。。。我没找到- -
要不你把a,n,s的类型改一下,再交一下看看。
追问我就是int不对才改的....
追答额,我用的就是int啊,我的意思是unsigned改一下,long可以留着。
本回答被提问者和网友采纳第3个回答 2012-12-05
scanf("%lu %lu",&a,&n);不对吧,分两句来写试试追问
如果是这个错误它会提示编译错误
这个考试系统中这样写是可以的