| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2090 人关注过本帖
标题:一个使用scanf 读取数据的问题
只看楼主 加入收藏
逸枫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:113
注 册:2012-6-10
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:10 
一个使用scanf 读取数据的问题
在一个data.txt文件里面有数据: 10 AABBCCAACCBBAAAAA(这样类似的数据)  
然后要用scanf 读取这些数据,然后找出有多少个ABC,最好可以循环的,就是如果第二行还有数据,第一次循环可以算出第一行的ABC各自数量,然后第二次循环算第二行

我无论怎么做-.-最后数出来的abc是0。。是不单单scanf的问题,还有char的问题吗?
程序代码:
#include <stdio.h>
#include <string.h>

int main (void) {

  printf("ID\tA\tT\tG\tC\tType\n");
  char le[10000];
  int i,id,genes,h,type,countA=0,countC=0,countG=0,countT=0,sampleNum=0;

  while((scanf("%d ",&id))!=EOF){
    scanf("%d %d %s",&genes,&h,&le);

    for(i=0;i<strlen(le);i++){
      if(le[i]=='A'){
        countA+=1;
      }else if(le[i]=='T'){
        countT+=1;
      }else if(le[i]=='G'){
        countG+=1;
      }else if(le[i]=='C'){
        countC++;
      }
    }

    if(countC<=countA && countA<=countT && countT<=countG) type=1;
    else if(countA<=countC && countC<=countT && countG>0) type=2;
    else type=3;

    printf("%d\t%d\t%d\t%d\t%d\t%d\n",id,countA,countT,countG,countC,type);
    countA=0;
    countT=0;
    countG=0;
    countC=0;
    sampleNum+=1;
  }
  printf("Total number of samples: %d\n",sampleNum);
  return 0;
}
已修正版本-.-以上


[ 本帖最后由 逸枫 于 2012-6-11 05:29 编辑 ]
搜索更多相关主题的帖子: 最好 数据 
2012-06-10 13:42
love24114
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:223
专家分:399
注 册:2011-7-11
收藏
得分:0 
贴代码
2012-06-10 13:51
逸枫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:113
注 册:2012-6-10
收藏
得分:0 
回复 2楼 love24114
贴了,之前忘记了。。
2012-06-10 14:18
xunxun
Rank: 2
等 级:论坛游民
帖 子:6
专家分:17
注 册:2012-6-10
收藏
得分:0 
你没整完吧。。。还有那个scanf里有个\n是不行的。。。还有scanf拷给字符串也有错。。。
2012-06-10 14:52
逸枫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:113
注 册:2012-6-10
收藏
得分:0 
回复 4楼 xunxun
循环我还没做,数ABC做不出来。。然后那个字符串是哪里错了?\n 那个我改改
2012-06-10 15:00
王点口
Rank: 2
等 级:论坛游民
帖 子:26
专家分:50
注 册:2011-9-15
收藏
得分:5 
没有错啊 ,只是你输入时要用逗号隔开 如:1,1,1,ABTGTBATFG (大写)
2012-06-10 16:22
逸枫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:113
注 册:2012-6-10
收藏
得分:0 
回复 6楼 王点口
有办法不用逗号吗,因为读取的文件是没有逗号的。。  用的  ./a.out < data.txt的。。那个文本文档不能改变
2012-06-10 16:29
ithaibo
Rank: 2
等 级:论坛游民
帖 子:52
专家分:50
注 册:2012-3-30
收藏
得分:0 
你如果想读取多行数据,那么你必须在你的for循环外面再加一层循环啊!
2012-06-10 16:36
王点口
Rank: 2
等 级:论坛游民
帖 子:26
专家分:50
注 册:2011-9-15
收藏
得分:5 
把scanf函数里%d与%d(%s)之间的逗号去掉就行啦
2012-06-10 17:13
王点口
Rank: 2
等 级:论坛游民
帖 子:26
专家分:50
注 册:2011-9-15
收藏
得分:0 
建议你详细看一下scanf函数输入原理
2012-06-10 17:15
快速回复:一个使用scanf 读取数据的问题
数据加载中...
 
   



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

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