易截截图软件、单文件、免安装、纯绿色、仅160KB

Turbo C里的指针数组 - C/C++ / C语言

#include <stdio.h>
#include <malloc.h>
main()
{
float (*T)[7],sum,avg;
int i,j;
/*float f1,*f2;*/
T=(float (*)[7])malloc(4*7*sizeof(float));
/*clrscr();*/
sum=avg=0;
/*f1=1.0;*/
/*f2=&f1;*/
/*scanf("%f",&T[0][0]);*/
for(i=0;i<4;i++)
{
for(j=0;j<7;j++)
{
/*if(i==0 && j==0) /*由于 T[0][0]已被赋值, 所以此循环中将略过*/
/*continue;*/
scanf("%f",(T+i)[j]);
sum=sum+*(T+i)[j];
}
}
avg=sum/28;
printf("The average temperature is %6.2f degree.\n",avg);

getch();
}
这里的指针数组在VC里能用,到Turbo C里就不行了呢?
在VC下也是不对的,只是侥幸没有出错罢了
改用下面的:
scanf("%f",&T[i][j]);
sum=sum+T[i][j];

指针法的话也可以是这样用:
scanf("%f",*(T+i)+j);
sum=sum+*(*(T+i)+j);
还要注意scanf要传入变量的地址,(T+i)[j])的类型是指向一维数组的指针,scanf是不检查变量的类型的。

1.为什么不对呢?不明白啊
2.可是我需要把它变成一维的怎么做呢?
3.因为这本书上说在Turbo C里,一维的就不会出现异常终止了,
 二维的可以通过
⑴float f1,*f2; /*指向一个浮点型变量*/
f1=1.0;
f2=&f1;
或者
⑵scanf("%f",&T[0][0]); /*为数组赋初值*/
for中:if(i==0 && j==0) /*由于 T[0][0]已被赋值, 所以此循环中将略过*/
  continue;


相关问答:

execl怎么调用java程序 - C/C++ / C语言

如题,C/C++中的execl怎么调用写好的java程序,
execl("/opt/java1.5/bin/java","MyClass",NULL);
这样的不行哦。

不会.

运行java程序
找工具查看一下那个程序的命令行

搜索下:jni ......

求教c/c++语言相关问题 - C/C++ / C语言

有一10*10矩阵,除去第一个点(0,0)和最后一点(9,9),还有八个点为1,其他都为0,要求用二维数组表示。八个点是随机生成的,编写相关程序表示矩阵所有可能情况。
真心求教各位高手,哎!本人太菜了!呵呵!
......

c静态编译另一个文件夹的库函数 - C/C++ / C语言

在根目录/lib中存放一个log.c,log.h,并用下面的语句:
gcc -c log.c
ar crv liblog.a log.o
编译出一个liblog.a静态库,然后在文件夹:/testfile中创建一个test.c和testc.c,test.c中引用了testc.c中定义的方法 ......

c 语言里浮点相乘 为什么小数全为0了 - C/C++ / C语言

如题:c 语言里浮点相乘 为什么小数全为0了
float x=8266.206055;
float y=7226.922363;
float z;
z=x*y;
z=59739228.000000;
为什么得到的Z 小数点后面全为0了
呵呵,超出浮点能表示范围了。

麻烦有人知道 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号