★☆题目88(选票问题)
现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中
void CountRs(void)
{ int i,j,count;
for(i=0;i<100;i++)
{ count=0;
for(j=0;j<10;j++)
if(xx[i][j]=='1') count++;
if(count==0||count==10) continue;
for(j=0;j<10;j++)
if(xx[i][j]=='1') yy[j]++;
}
}
☆题目89(选票问题)
现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。
void CountRs(void)
{ int i,j,count;
for(i=0;i<100;i++)
{ count=0;
for(j=0;j<10;j++)
if(xx[i][j]=='1') count++;
if(count>5) continue;
for(j=0;j<10;j++)
if(xx[i][j]=='1') yy[j]++;
}
}
★☆题目90(级数运算题)
某级数的前两项A1=1,A2=1,以后各项具有如下关系:
An=An-2+2An-1(注:n-2与n-1为下标)
下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn<M且Sn+1>=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能, 最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。
请勿改动主函数main()和写函数writeDat()的内容。
#include <stdio.h>
int b[3];
jsValue()
{int a1=1,a2=1,a12,sn,k=2;
sn=a1+a2;
while(1)
{a12=a1+2*a2;
if(sn<100&&sn+a12>=100) b[0]=k;
if(sn<1000&&sn+a12>=1000) b[1]=k;
if(sn<10000&&sn+a12>=10000) {b[2]=k;break;}
sn=sn+a12;www.examw.com
a1=a2;a2=a12;
k++;
}
}
运行结果为:
M=100,n=6
M=1000,n=9
M=10000,n=11
☆题目91(单词个数统计题)
编写一个函数findStr(char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",函数返回值是6。(表明了返回值是整数型)
函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。
int findStr(char *str,char *substr)
{ int i,j,len1,len2,cnt=0,flag;
len1=strlen(str);
len2=strlen(substr);
for(i=0;i<len1;i++)
{ for(j=0;j<len2;j++)
if(str[i+j]==substr[j]) flag=1;
else {flag=0;break;}
if(flag==1) cnt++;
}
return cnt;中华考试网
}
★题目92(Fibonacci数列题)
编写函数jsValue,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后调用函数writeDat()读取50个数据t,分别得出结果且把结果输出到文件out.dat中。
例如:当t=1000时,函数值为:1597。
int jsValue(int t)
{ int f0=0,f1=1,fn;
fn=f0+f1;
while(fn<=t)
{ f0=f1;
f1=fn;
fn=f0+f1;
}
return fn;
}