读书人

c语言中的数组有关问题和scanf有关问题

发布时间: 2012-09-08 10:48:07 作者: rapoo

c语言中的数组问题和scanf问题
1.数组。
不能定义a[],必须定义为a[n];才可以。
C语言不是可以定义a[]吗?在linux系统下不行吗?或者需要怎么样调整一下?
2.scanf问题。
如 scanf("%d \n", &n);则在运行的时候会让你输入两次数值才可以(实际上第一次输入的数值被赋给n,然后需要再次输入回车后,程序才继续),为什么?

谢谢!

[解决办法]
1
除了尚未普及的最新标准外,所有C/C++标准均要求数组在定义时确定大小
你可以用int a[] = { 3, 5 }这种较为方便的写法,编译器替你去数=后面有多少个元素,以此来确定数组大小
但无论如何,数组大小必须确定,这点没有任何商量的余地

2
我很想知道你为啥要在scanf函数里写\n。
你要求输入一个整数,然后还要求输入一个回车符?

[解决办法]
1、不能定义a[],你想定义动态数组的话,可以用指针,调用malloc/free等函数来管理;
2、改为scanf("%d", &n)就可以了,不要加\n。

读书人网 >C语言

热点推荐