题目描述 编制程序,统计文本stdin中字符$出现的次数,并将结果写入文件stdout 输入 字符文本 输出 $次数
答案:2 悬赏:70 手机版
解决时间 2021-11-17 20:21
- 提问者网友:沦陷
- 2021-11-17 12:09
题目描述 编制程序,统计文本stdin中字符$出现的次数,并将结果写入文件stdout 输入 字符文本 输出 $次数
最佳答案
- 五星知识达人网友:孤老序
- 2021-11-17 13:21
楼主你好。
你贴的那段代码可以实现题目中的要求。
#include
int main()
{
char a[1000];
int b=0;
int i;
for(i=0;scanf("%c",&a[i]),a[i]!=' ';i++)//这里每次读取一起个字符到a[i]中并判断a[i]是否为空格,如果是空格就退出循环停止读取字符;否则进入循环体,判断a[i]若是'$'则计数器b自增1.
{
if(a[i]=='$')
b++;
}
printf("%d\n",b);//打印计数器的值
return 0;
}
输出:
0123456789!@#$%^&*()_+|$$$ $!@#
4
注意我在三个$$$后打了一个空格,因此读取到这里就会结束,不会读取后面的$!@#,结果为4。追问可是提交后答案错误追答题目中有要求用空格作为结束符么?
我看到这道题的第一反应是让用户输入一串字符串,将其保存到一个数组中,然后遍历数组统计其中的字符'$'个数,也就是相当于以回车为结束符。
楼主你确定题目就像你写的那样么?我觉得题目说的不明确,文本stdin,文件stdout,就是指标准输入输出还是从文件中读取然后将结果输出到文件中去。追问#includemain(){ char a[1000]; int b=0; int i; for(i=0;;i++){ scanf("%c",&a[i]); if(a[i]==' ') {break;} if(a[i]=='$') {b=b+1;} } printf("%d",b);}
但是这样是对的追答嗯,简单些:
#include
main(){
char ch;
int count=0;
scanf("%c",&ch);
while(ch!=' '){
if(ch=='$') count++;
scanf("%c",&ch);
}
printf("%d\n",count);
}
输出:
0123456789!@#$%^&*()_+|$$$ $!@#
4
Press any key to continue
你贴的那段代码可以实现题目中的要求。
#include
int main()
{
char a[1000];
int b=0;
int i;
for(i=0;scanf("%c",&a[i]),a[i]!=' ';i++)//这里每次读取一起个字符到a[i]中并判断a[i]是否为空格,如果是空格就退出循环停止读取字符;否则进入循环体,判断a[i]若是'$'则计数器b自增1.
{
if(a[i]=='$')
b++;
}
printf("%d\n",b);//打印计数器的值
return 0;
}
输出:
0123456789!@#$%^&*()_+|$$$ $!@#
4
注意我在三个$$$后打了一个空格,因此读取到这里就会结束,不会读取后面的$!@#,结果为4。追问可是提交后答案错误追答题目中有要求用空格作为结束符么?
我看到这道题的第一反应是让用户输入一串字符串,将其保存到一个数组中,然后遍历数组统计其中的字符'$'个数,也就是相当于以回车为结束符。
楼主你确定题目就像你写的那样么?我觉得题目说的不明确,文本stdin,文件stdout,就是指标准输入输出还是从文件中读取然后将结果输出到文件中去。追问#include
但是这样是对的追答嗯,简单些:
#include
main(){
char ch;
int count=0;
scanf("%c",&ch);
while(ch!=' '){
if(ch=='$') count++;
scanf("%c",&ch);
}
printf("%d\n",count);
}
输出:
0123456789!@#$%^&*()_+|$$$ $!@#
4
Press any key to continue
全部回答
- 1楼网友:旧脸谱
- 2021-11-17 14:30
程序没有问题啊,只是没有必要使用数组,可以改为:
#include
int main()
{
char a;
int b=0;
for( ; scanf("%c",&a),a!=' '; )
{
if(a=='$')
b++;
}
printf("%d\n",b);
return 0;
}
或者,显式地使用标准输入输出文件:
#include
int main()
{
char a;
int b=0;
// int i;
for( ; fscanf(stdin, "%c",&a),a!=' '; )
{
if(a=='$')
b++;
}
fprintf(stdout, "%d\n",b);
return 0;
}追问你好,我把你的程序提交后运行错误怎么办
#include
int main()
{
char a;
int b=0;
for( ; scanf("%c",&a),a!=' '; )
{
if(a=='$')
b++;
}
printf("%d\n",b);
return 0;
}
或者,显式地使用标准输入输出文件:
#include
int main()
{
char a;
int b=0;
// int i;
for( ; fscanf(stdin, "%c",&a),a!=' '; )
{
if(a=='$')
b++;
}
fprintf(stdout, "%d\n",b);
return 0;
}追问你好,我把你的程序提交后运行错误怎么办
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯