| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 914 人关注过本帖
标题:求一个子函数
只看楼主 加入收藏
丞相杀手
Rank: 6Rank: 6
等 级:侠之大者
帖 子:203
专家分:462
注 册:2011-1-11
收藏
得分:0 
表述不清楚

斗不过疯子,不参与争论。
2011-01-20 07:18
wk940827
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2010-12-9
收藏
得分:0 
*********帮写个子函数*对以前表述进一步说明****************
一个二维数组,行有2000行,列有8列。对每一列分别进行统计,统计最后一个收尾字符在整个列中出现的情况。

不知明白否?
2011-01-20 12:23
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
大致上写一写
{
   ....初始化a[][]=0
     
   for(i=0;i<n;i++)
     {
         while((temp=getchar())!='\n')
          {
            a[i][temp]++;
           last=temp;
          }
       if(a[i][last]>9)
       printf("(%d)",a[i][last]);
       else
       printf("%d"a[i][last]);
     }
}

小代码,大智慧
2011-01-20 12:48
wk940827
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2010-12-9
收藏
得分:0 
*********帮写个子函数*对以前表述进一步说明****************
一个二维数组,行有2000行,列有8列。对每一列分别进行统计,统计最后一个收尾字符在整个列中出现的情况。
“11111111adddddddddccccccccc33333111111111133332211111112222222221000000000011111111111”

只要统计结尾的字符出现的情况,当此字符连续出现个数大于等于10个时要求用括弧显示。譬如上述字符串经程序运行后的结果:8(10)71(11)

运行的结果并不只是一个大于或小于10的int 。用到"\n"的话是否我主函数要加个循环输出列再和子函数关联?不能对数组列直接进行操作吗?函数这章我不知啥时学到会用呀?

[ 本帖最后由 wk940827 于 2011-1-20 13:09 编辑 ]
2011-01-20 13:06
Kabie
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:185
注 册:2009-8-21
收藏
得分:0 
。。。。你先把问题描述清楚。。。来回就重复那一句。。。
2011-01-20 13:43
wk940827
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2010-12-9
收藏
得分:0 
*********帮写个子函数*对以前表述进一步说明****************
一个二维数组,行有2000行,列有8列,该数组在主函数中已通过读文件而生成。现要对每一列分别进行统计,统计是以该列最后一个收尾字符在整个列中出现的情况(并不是该字符在所在列中出现次数的总数,该字符必然会被其它字符隔开)。若该字符连续出现的次数>=10则该次数用括弧括起来免得与前后数混淆,连续出现次数<=9则不用括弧。要求调用该子函数实现对数组列实现该功能。譬如下面是数组的其中 一列:
“f11gthter11111111adddddddddccccccccc33333111111111133332211111112222222221000000000011111111111”
调用子函数后等到如下结果:
“1”出现的情况为:2 8(10)7 1(11)。



不知明白否?
2011-01-20 18:15
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
flat =0 ,i=0,b=0; //可以用数组,或者不用数组
while(i<N)
{
if(a[i]==last)
{
  b++;
  flat=1;
}
else
{
  flat =0 ;
}
 
 if(flat==0&&b)
{
   if(b>9)
   printf("(%d)",b);
   else
   printf("%d",b);
   b=0;
 }
 i++;
}

[ 本帖最后由 点线面 于 2011-1-20 18:37 编辑 ]

小代码,大智慧
2011-01-20 18:36
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:5 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char c[8][2000],last;
       int flat =0 ,i=0,j,b=0,Len; //可以用数组,或者不用数组
  
  for(i=0;i<8;i++)
  {
      gets(c[i]);

      Len=strlen(c[i]);
      last=c[i][Len-1];

     flat =0 ,j=0,b=0;

    while(j<Len)
    {
        if(c[i][j]==last)
       {
          b++;
          flat=1;
        }
        else
        {
           flat =0 ;
         }

        if(flat==0&&b)
       {
            if(b>9)
          printf("(%d)",b);
            else
           printf("%d",b);
          b=0;
        }
     j++;
      }

            if(b)  //特别处理
         {
             if(b>9)
            printf("(%d)",b);
            else
             printf("%d",b);
             b=0;
           }
            putchar('\n');
  }

  getchar();
  getchar();
  return 0;
}

看看程序是否符合你要求

小代码,大智慧
2011-01-20 19:01
快速回复:求一个子函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019165 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved