C语言数组问题
main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++,for(i...
main()
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++) c[s[i]]++,
for(i=1;i<5;i++)
printf("%d",c[i]);
printf("\n")
}
求解释,详细点谢谢!!! 展开
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++) c[s[i]]++,
for(i=1;i<5;i++)
printf("%d",c[i]);
printf("\n")
}
求解释,详细点谢谢!!! 展开
展开全部
本题巧妙运用数组c中的元素来统计数组s中1234这4个数字出现的次数
程序运行完后,最终结果是4332,表示1出现了4次,2和3各出现了3次,4出现了2次
for(i=0;i<12;i++)
c[s[i]]++;
当i=0时,s[i]相当于s[0],取数字其实是1,相当于c[1]++,这样c数组中的第一个元素就自然从0变为1
同理,当i=2时,s[2]的内容是2,相当于c[2]++,这样c数组中的第二个元素就自然从0变为1,这时统计1和2两个数字各出现过1次了。
以此类推,i=3和i=4的时候,c[4]++已经执行过2次,表示数字4已出现过2次
再往下推下去,思路已经很明了,后面的代码也没太大难度。
本题的关键在于c[s[i]]++;这行代码,你顺到我说的思路,根据循环变量的增值,把数字都代进去,自然就会看明白
c[5]={0}是把c数组中所有的元素清0
程序运行完后,最终结果是4332,表示1出现了4次,2和3各出现了3次,4出现了2次
for(i=0;i<12;i++)
c[s[i]]++;
当i=0时,s[i]相当于s[0],取数字其实是1,相当于c[1]++,这样c数组中的第一个元素就自然从0变为1
同理,当i=2时,s[2]的内容是2,相当于c[2]++,这样c数组中的第二个元素就自然从0变为1,这时统计1和2两个数字各出现过1次了。
以此类推,i=3和i=4的时候,c[4]++已经执行过2次,表示数字4已出现过2次
再往下推下去,思路已经很明了,后面的代码也没太大难度。
本题的关键在于c[s[i]]++;这行代码,你顺到我说的思路,根据循环变量的增值,把数字都代进去,自然就会看明白
c[5]={0}是把c数组中所有的元素清0
展开全部
main()
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++) c[s[i]]++; //c[s[i]]就是先算s[i]的值,比如第一个i=0时,s[i]=1 再求c[1]=c[1]+1的值
for(i=1;i<5;i++)//其实c[0]=0
printf("%d",c[i]);
printf("\n") ;
}
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++) c[s[i]]++; //c[s[i]]就是先算s[i]的值,比如第一个i=0时,s[i]=1 再求c[1]=c[1]+1的值
for(i=1;i<5;i++)//其实c[0]=0
printf("%d",c[i]);
printf("\n") ;
}
追问
大神在上几个数行吗?在详细点c[1]=0 c[2]=0? 后面取几个数? 还有http://zhidao.baidu.com/question/574915309?quesup2&oldq=1
你看下 就那个fun(k,x)的问题,刚才跑步去了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++) c[s[i]]++; //c[s[i]]就是将s[i]的值当着数组c[5]的第几个数据值,然后再处理。比如第一个i=0时,s[i]=1 再求c[1]=c[1]+1的值;
for(i=1;i<5;i++)//其实c[0]=0,循环四次,将数组c[5]的数据从第二个数开始输出在显示器上!
printf("%d",c[i]);
printf("\n"); //最后输出一个换行符
}
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++) c[s[i]]++; //c[s[i]]就是将s[i]的值当着数组c[5]的第几个数据值,然后再处理。比如第一个i=0时,s[i]=1 再求c[1]=c[1]+1的值;
for(i=1;i<5;i++)//其实c[0]=0,循环四次,将数组c[5]的数据从第二个数开始输出在显示器上!
printf("%d",c[i]);
printf("\n"); //最后输出一个换行符
}
追问
大神在上几个数行吗 c[2]=? c[3]=?
追答
第一个i=0时,s[i]=1 再求c[1]=c[1]+1的值;
第一个i=1时,s[i]=2 再求c[2]=c[2]+1的值;
第一个i=2时,s[i]=3 再求c[3]=c[3}+1的值;
第一个i=3时,s[i]=4 再求c[4]=c[4]+1的值;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询