int str[100];
gets(str); -- 错,gets 用于 char str[100]; 不能 int 型。
===============
一个数组x[]中 有多少个元素:
int x[]={1,2,3,4,5,6,7,8,9,10};
n = sizeof(x) / sizeof(int);
================
控制台输入 2 5 6 7回车 输出结果4(输入了4个数) ,用下法:
#include
int main()
{
int x[]={1,2,3,4,5,6,7,8,9,10};
int i, n,c;
n = sizeof(x) / sizeof(int);
printf("There are %d elem in the array\n",n);
printf("\nintput data\n");
n=0;
while(1){
if ( scanf("%d",&x[n]) ==1) n++; // 统计个数
c = getc(stdin);
if (c=='\n') break; else ungetc(c,stdin); // 判断是否输入结束符 \n到达
}
printf("you typed %d data:\n",n);
for (i=0;i
return 0;
}
最好定义一个结束标志 字符串的结束标志是‘\0’所以strlen能计算出长度
你确定 gets的参数可以为int型数组吗?
while(str[i]!=/0)
1、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。
2、例如:
int data[4],length;
length=sizeof(data)/sizeof(data[0]); //数组占内存总空间除以单个元素占内存空间大小,即等于元素个数
printf("length of data[4]=%d", length ); //输出length of data[4]=4