C语言 求高手解答

作者&投稿:韶军 (若有异议请与网页底部的电邮联系)
(1) void fun(char s[],int b[])
(2) fun ( s1, a )
(3) s[i] >= '0' && s[i] <= '9'
(4) s[i] == ' '

严格按照空缺填的 自己注意下分号吧

void fun (char[], int[]);
fun (s1,a);
'0' <= s[i] && s[i] <= '9'
' ' == s[i]

#include "stdio.h"
void main ()
{
char s1[80];int a[4]={0};
int k;
/***********SPACE***********/
//【?】;
void fun(char s[],int a[]);
gets(s1);
/***********SPACE***********/
//【?】;
fun(s1,a);
puts(s1);
for(k=0;k<4;k++)
printf("%4d",a[k]);
}
void fun(char s[],int b[])
{
int i;
for (i=0;s[i]!='\0';i++)
if ('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z') b[0]++;
/***********SPACE***********/
else if (s[i]<'9'&&s[i]>'0') b[1]++;
/***********SPACE***********/
else if (s[i]=' ') b[2]++;
else b[3]++;
}

这个简单...

C语言随机数~

随机序列的产生是有规律的,当然也不是这样说
就是说:srand影响了之后产生随机数的整个序列
假如你不用这个的话后面产生的随机序列可能会相同,为了避免这样的情况就利用srand(time(NULL));

你不妨试试下面的程序看看
#include
#include
#include

int main(void)
{
int i;
//srand( time(NULL) );
for( i = 0; i < 10; i++ )
printf( "Random number #%d: %d
", i, rand() );

return 0;
}

然后你把隐去的那段不要隐了
看一下结果你就明白了,呵呵
我语言表达不是很好,不过一看就明白了

你的两个数组的长度都是 80。如果不是动态开辟的数组,你声明的时候给多少长度就是多少长度。
第二个数组的长度是2?估计你使用 strlen 函数求吧? strlen只能求字符串长度,没办法求数组长度。strlen 是用 '\0' 来判断字符串的结束标志的,而你第二个数组中放置了几个'\0' (ASCII码为0,),所以得到的长度是 2。将第二个数组改为char m[80]={'1','1','0','1','0','0','0'}; 用 strlen 求得结果为 7。
求数组长度的正确方法:
sizeof(mes)/sizeof(int);
sizeof(mes)/sizeof(char)