一个使用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 编辑 ]