C语言的版本语法问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 02:08:14
曾经我考二级时选择了foxBASE,而今准备考三级,但三级的题大部分与C语言有关,所以就自学C语言,在学习中我碰到C的版本问题,盼望高人指点.
TC2.0 、TC3.0、C for windows、C/C++ for windows、汉化版的TC等版本的C语言的编译器我都下载使用。可是有的语句在TC2.0、3.0上可以实现,还在C for windows、C/C++ for windows上无法实现。有的在汉化版上实现,却在另外的版本中无法实现。下面一个9乘9的口诀表。只有在TC2.0 、TC3.0和汉化版上可以实现。
/*----------------------------------------------------*/
main()
{
int i,j,r;
printf("\n");
for (i=1;i<10;i++)
{ for(j=1;j<10;j++)
{
r=i*j;
printf("%d*%d=%-3d",i,j,r);
}
printf("\n");
}
}
/*----------------------------------------------------*/
请问是什么原因导致的,到底哪一个C语言的版本才是标准的。请高人说明一下。
一楼回答的真的不是非常好.stdio.h要与不要,我在程序中都试过了.至于教材,我选择是谭浩强编写的第二版,《C语言程序设计》,应该满足ANSI的要求。二楼说得我真的不知如何说了。那for(i=1;i=10;i++)的语句不知你看明白了没有。至于三楼说的。C82、C86、C99,的标准到底哪一个兼容性好一些呢?想麻烦你说一说各标准的定义。

个人觉得还是用C++作为学习的工具比较好吧,因为现在大部分的编程都是在其下进行的,虽然C++只是个开发工具,没C来得真实,但是其广大的实用性确实值得去学习使用它,去适应它的编译环境。
这个程序当然是没有问题的,我在我的英版C++中运行完全没有问题,由于牵涉到乘法,你加include <math.h> include<stdio.h>试试吧,其实这不是主要的,据我了解是编译器的内部处理字的大小区别,具体原因就不知道了。不过作为使用和学习者,个人觉得知道了也没啥大用处吧,还是选择一个比较理想的编译工具,好好学习了。

楼上回答有误. 包含一个没必要包含的头文件, 只要不产生名冲突. 是不会有任何编译或者执行的问题

楼主的问题似乎是main函数的写法不符合 c86标准
int main() 这个视乎编译器, 最好选用一个标准的编译器. 便于排除这些无厘头的错误

c标准有好几种. c82 c86 c99 , 我比较习惯用gcc
在windows下可以下载devcpp, 包含了mingw32 即gcc的windows版本

看来你用的教材是不标准的,这个程序没有包含必要头文件stdio.h所以会出错.

建议,不要再使用你提到的这些不标准的编译器,建议使用C++BUILDER或者DEV-C++或者VC++,并且选择一本讲ANSI C的教材(国外的教材一般都满足这个要求).

没有给出ij累加的赋值语句吧

stdio.net