代码如下#include<stdio.h>#include<stdlib.h>#include<time.h>int scan();void daoxuprint(char str[100],int n);char str[100];FILE* fp;void main(){int n;n=scan();daoxuprint(str,n);}int scan(){fp=fopen("figure.txt","r");int i,n;for(i=0;str[i]!='\n';i++)n=i;fscanf(fp,"%s",&str);return n+1;}void daoxuprint(char str[100],int n){int j;for(j=n;j>=0;j--)printf("%c",str[j]);}其中figure.txt是任意长度的整数,不知道哪里出了错,这个程序实现的主要是从文本读入一个整数,倒序输出。
2 回答
GCT1015
TA贡献1827条经验 获得超4个赞
#include<stdio.h>
#include<stdlib.h>
//多余
//#include<time.h>
int scan();
void daoxuprint(char str[100],int n);
char str[100];
FILE* fp;
void main()
{
int n;
n=scan();
daoxuprint(str,n);
}
int scan()
{
int i,n;
fp=fopen("figure.txt","r");
//fscanf(fp,"%s",&str);&str错误,改成str
fscanf(fp,"%s",str);
//文件打开了要关闭
fclose(fp);
//for前要先执行fscanf(fp,"%s",str);,以读取文件中的数据到str数组中
//且fscanf函数不会读入换行符'\n',str会以'\0'结束,统计长度时应判断'\0'
//或调用strlen(str);函数
for(i=0;str[i]!='\0';i++)
n=i;
return n+1;
}
void daoxuprint(char str[100],int n)
{
int j;
//j应从n-1开始,因为n是str的长度,最后一个元素的下标是n-1
for(j=n-1;j>=0;j--)
printf("%c",str[j]);
}
- 2 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消