C语言程序设计,高手请进!

2024-11-29 04:01:07
推荐回答(2个)
回答1:

我对题目的理解:
单词首地址:单词首字母下标
假设单词只由英文字母和阿拉伯数字组成

先在x.txt中输入字符串:
例如:
ajfljfljalf afjalfjlaf ,.. afjadfiw
adfkdsf
afddfj d f e fa d g afafadf

结果:
0 14 30 39 47 54 56 58 60 63 65 68
total:12

/*
题目: 记录句中单词的首地址
要求:在x.txt文件中给出10个字符串(10个句子),用程序读入,找出每个单词的首地址,同时计算单词个数,输出到屏幕上后,再
输出到x1.txt文件中。
*/
#include
#include
char Buffer[2000]; //在字符串不大的情况下没问题
void ReadFile()
{
int i;
char ch;
FILE *fp;
fp=fopen("x.txt","r");
if(!fp)
{
printf("Can not open the file!\n");
exit(0);
}

for(i=0;(ch=fgetc(fp))!=EOF;i++)
Buffer[i]=ch;
Buffer[i]='\0';

fclose(fp);
return ;
}
int IsStr(char ch)
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')||(ch>='0'&&ch<='9')) return 1;
else return 0;
}
void CreateFile()
{
int i=0,count=0;
char ch;
FILE *fp2;
fp2=fopen("x1.txt","w");
if(!fp2)
{
printf("Can not open the file!\n");
exit(0);
}
while(Buffer[i]!='\0')
{
if(IsStr(Buffer[i]))
{
fprintf(fp2,"%d\t",i);
count++;
for(;IsStr(Buffer[i]);i++);
}
i++;
}
fprintf(fp2,"\ntotal:%d\n",count);
fclose(fp2);
return ;
}
int main()
{
ReadFile();
CreateFile();
printf("哈哈,去看看你的x1.txt吧!\n");
return 0;
}

回答2:

十进制转二进制:
例如:75
75/2=37余1
37/2=18余1
18/2=9余0
9/2=4余1
4/2=2余0
2/2=1余0
1/2=0余1
将得到的一系列的余数倒过来书写就得到该数所对应的二进制数1001011