c语言题目 进进

来源:百度知道 编辑:UC知道 时间:2024/06/22 19:34:33
#include "stdio.h"
fun (char p[][10])
{int n=0,i;
for (i=0;i<=7;i++)
if (p[i][0]=='T')n++;
return n;
}
main()
{char str[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
printf("%d\n",fun(str));
}
高手来看看这题,,,答案数多少啊!!str【】 【10】第一个【】里的数字是多少,,我不知道c是给他们怎么分配的

因为你在初始化的时候默认为7行。
所以第一个[7],表示的是数组有7行
str[7][10]意思给数组定义大小。7行,十列。
而当你要引用的时候是从0开始算
比如str[0]代表第一行。
str[6]代表第7行

这个函数是统计一共有几个T。
所以可知答案是2.一共有两个T
不懂hi我

第一个数是7,一行放一个字符串;

fun函数统计第一个字符是'T'的字符串数目

输出n=2

题目是错的,应该是for(i=0;i<7;i++)
因为str是个长度为7的二维数组,下标最大为6.

C语言支持数组在声明时不写第一维的长度,编译器会自动计算你的初始化参数列表,看长度是多少.比如这里初始化列表中有7个字符串,编译器会自动把str声明成char [7][10]

char str[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
这是二维数组的一种定义方式。
str[][10]它指明str数组(二维,假定行、列)的第二维(列)是由10个char元素构成的,而第一维(行)是缺省的,按照初始化时所需要的空间分配。
在C语言中,多维数组定义时,如果有初始化,则它的第一维长度是可以省略的,但其他各维的长度必须指明。

这个例子中,按照初始化时所需的空间,str[][10]的第一维长度应该是7。

初始化二维数组 你初始化了7个串 那么
s[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};就把第一个[]设置为6 详情请参照书中详解
for (i=0;i<=7;i++)
if