| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 519 人关注过本帖
标题:大家看看到底问题在哪里呀
只看楼主 加入收藏
jstxlwl118
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-6-1
收藏
 问题点数:0 回复次数:7 
大家看看到底问题在哪里呀

这是一个求平均值的程序,这个数组有10个元素.数组里面的元素不是a[0]开始的吗?如果是定义了a[9],那不是a[0]-a[9}10个元素吗?;那a[10]不就是a[0]-a[10]11个元素了吗???本身数组就只有10个元素

#include "Stdio.h"
int main(void)
{
long float a[10],sum;
int b;
printf ("please input the number \n");

for (b=0;b<10;b++)
scanf ("%lf",&a[b]);

for (b=0;b<10;b++)
sum=sum+a[b];

printf ("sum=%lf\n",sum);
printf ("ping jun zhe =%lf\n",sum/10);


}


这两个程序就是定义数组的时候不一样.为什么程序输出的结果也会不一样这是为什么



#include "Stdio.h"
int main(void)
{
long float a[9],sum;
int b;
printf ("please input the number \n");

for (b=0;b<10;b++)
scanf ("%lf",&a[b]);

for (b=0;b<10;b++)
sum=sum+a[b];

printf ("sum=%lf\n",sum);
printf ("ping jun zhe =%lf\n",sum/10);


}


[此贴子已经被作者于2007-6-6 9:52:35编辑过]

2007-06-06 09:31
yangfan222
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-4-13
收藏
得分:0 
return 0什磨义丝

2007-06-06 09:34
yangfan222
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-4-13
收藏
得分:0 

这两个程序就是定义数组的时候不一样.为什么程序输出的结果也会不一样这是为什么
定义数组不一样,a[9]有9个原素a[10]有10个原素
一定不一样 right 还有main主函数还可以有return吗???


2007-06-06 09:38
nanjim
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-6
收藏
得分:0 
这两个程序就是定义数组的时候不一样.为什么程序输出的结果也会不一样这是为什么


上面这句话是什么意思?
按照我的理解:
数组不一样,结果还能一样吗?

http:/// 不错
2007-06-06 09:39
jstxlwl118
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-6-1
收藏
得分:0 
这个数组有10个元素.数组里面的元素不是a[0]开始的吗?如果是定义了a[9],那不是a[0]-a[9}10个元素吗?;那a[10]不就是a[0]-a[10]11个元素了吗???本身数组就只有10个元素
我本身是求这10个元素的平均值呀
2007-06-06 09:54
wshyj18
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2007-5-14
收藏
得分:0 

这好像设及到指针


2007-06-06 12:00
poemsea
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-6-6
收藏
得分:0 
20!=2432902008176640000
int 范围 -2147483648 到 2147483647 (int 32位)
int 范围 -32768 到 32767 (int 16位)
unsigned int 范围 0到65535 (int 16位)
unsigned int 范围 0到4294967294 (int 32位)
所以用int的类型存储20!是行的用 double类型可以
但是如是求1000!double也无能为力了因为double只有308位(十进制)
而1000!多达两千多位(十进制)
所以求存储比较的数时最好用数组来存储
下面我给出我的一个小小的程序希望你能得到启发 呵呵。。。。。。。。。。。。。。。。。。。。。。。。
/************************************************
1000!在linux 下测试通过
************************************************/
#include<stdio.h>
#define m 100000
int main()
{
long dd[m]={1},bit=0,tmp,top=1;
int i,j,x;
for(i=2;i<=1000;i++)
{
for(j=0;j<top;j++)
{
dd[j]=dd[j]*i;
}
for(j=0;j<top;j++)
{
tmp=dd[j];
dd[j]=(bit+tmp)%10;
bit=(bit+tmp)/10;
}
while(bit>0){
dd[top++]=bit%10;
bit=bit/10;
}
}
for(i=top-1;i>=0;i--)
printf("%d",dd[i]);
printf("\n");
return 0;
}
2007-06-06 12:39
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
收藏
得分:0 
a[9]跟a[10]的区别,这里面的9跟10不代表下标,只代表该数组能容纳多少的元素,定义数组的时候不管你是准备从0或1下标开始都只给你分配了9或10个数组的空间。所以就不一样。还有sum最好能给个初始值.

深山苦学C语言,终年不见外面世界。
2007-06-06 17:50
快速回复:大家看看到底问题在哪里呀
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039257 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved