张廷玉的生辰八字:一道c语言程序的初级错误。

来源:百度文库 编辑:高校问答 时间:2024/04/30 04:07:12
各位大虾,小菜刚开始学习c语言,编了一个小程序来计算a+aa+aaa+...+aa...a(n个a),但是调试总是错误,以下是小菜所写的程序,烦请各位大虾指点一二,指出错误。不胜感激!
#include<stdio.h>
main()
{
int a,c,n,i,j,sum=0,b,s;
clrscr();
scanf("%d,%d",&a,&n);
for(i=0;i<=n;i++)
{
s=0;
for(j=0;j<=i;j++)
{
b=pow(10,j);
c=a*b;
s=s+c;
}
sum=sum+s;
}
printf("%d",sum);
}
clrscr();
作用是清屏
哥们,还是不对阿

我也是初学者,我把这个题做了一下,运行挺好。把它送给你吧!
int fun(int a,int n)
{
int sum=a,i;
for(i=1;i<n;i++)
sum=sum+sum*10+a;
return (sum) ;
}
#include <stdio.h>
main()
{
int a,n,sum;
scanf("%d%d",&a,&n);
printf("a=%d,n=%d\n",a,n);
sum=fun(a,n);
printf("sum=%d\n",sum);
}

语法太糟糕了,应该先学好语法

就语法方面:
1.主函数main应该有返回值类型,比如int型或者void也可以
2.函数clrscr()是干什么用的?你是不是写错了?
3.函数pow()不在stdio.h,而在math.h中,必须把这个头文件包含进去
4.函数pow()有要求两个参数,都应该是double型的,返回时候也应该是double型的,而你的返回值是b,是int型的,这可能造成精度损失,你可以把b也定义成double型
我还是建议你从更简单的例子入手
慢慢来
基础是最重要的
我还是建议你从更简单的例子入手
慢慢来
基础是最重要的
我还是建议你从更简单的例子入手
慢慢来
基础是最重要的
我还是建议你从更简单的例子入手
慢慢来
基础是最重要的

不存在1楼描述的double问题

不过math.h是需要声明的

int i,c=0,sum=0,n=5,a=1;
for (i=0;i<n;i++){
c=pow(10,i)+c;
sum=sum+(c*a);
}

sum为结果

#include<stdio.h>
main()
{
clrscr();
int a,n;
scanf("%d,%d",&a,&n);
if(a>=10)
printf("the value of a is wrong.");
int b,sum,i;
b=0;
sum=0;
for(i=1;i<=n;i++)
{
b=b*10+a;
sum+=b;
}
printf("%d",sum);
}

看看这样行不,我也不怎么会,
错了就不好意思了,我是菜鸟级的,
不过喜欢编程而已。呵呵

你既然使用了清屏语句,就要包含clrscr();所在的库,
应加上
#include <conio.h>
如果在没有其他的语法错误就应该没问题了