永发信息网

c语言字符计算的问题。。

答案:2  悬赏:30  手机版
解决时间 2021-03-05 00:08
要求输入字符串,包含字符数,行数,和单词数。。
请高手帮忙看一下程序哪出错了。。

#include
int main()
{
int i,findnums,findnum;
char number[1000];
int findchars(char []);
int findchar(char []);
int shaobin;

while(shaobin!=-1)
{
shaobin=0;
printf("if you want to over the program please type in over");
gets(number);
if(gets(number)=="over")
shaobin=-1;
else
findnums=findchars(number);
findnum=findchar(number);
}
printf("the char is%d,the chars is%d,the line is%d",findnum,findnums,i);
return 0;
}
int findchars(char list[])
#define yes 1
#define no 0
{
int i,inaword,count=0;

inaword=no;
for(i=0;list[i]!='\0';i++)
{
if(list[i]==' ')
inaword=no;
else if(inaword==no)
{
inaword=yes;
count++;
}
}

return (count);
}

int findchar(char list[])
{
int e;
for(e=0;list[e]!='\0';e++)

return e;
}

是对字符串中的行数,字符数,单词进行计数。。
最佳答案
#include "stdafx.h"
#include
#include"string"
int main()
{
int i=0,findnums=0,findnum=0;//少了初始化,后面有直用初始化的值
char number[1000];
int findchars(char []);
int findchar(char []);
int shaobin=0; //(1)
while(shaobin!=-1)
{
//int shaobin=0;(2)
//(1)(2)位置错了
printf("if you want to over the program please type in over");
gets(number);
//if(gets(number)=="over")
if(!strcmp(number,"over"))
shaobin=-1;
else
{//这里少了个{}
findnums=findchars(number);
findnum=findchar(number);
}
}
printf("the char is%d,the chars is%d,the line is%d",findnum,findnums,i);
return 0;
}
int findchars(char list[])
#define yes 1
#define no 0
{
int i,inaword,count=0;

inaword=no;
for(i=0;list[i]!='\0';i++)
{
if(list[i]==' ')
inaword=no;
else if(inaword==no)
{
inaword=yes;
count++;
}
}

return (count);
}

int findchar(char list[])
{
int e;
for(e=0;list[e]!='\0';e++)

return e;
}
全部回答
第一,请把双引号改成单引号,你声明的不是字符串,只是一个只能存放单个字符的变量,双引号用于括住字符串。 第二,你那个printf("%d“);  想表达什么?让printf函数显示谁的值? 要显示ch的值那就改成printf("%d", ch);  %d是将你传给printf函数的参数,以10进制数值形式显示,字符----》数值。 而%c是将参数以字符形式显示,数值----》字符。 反正对于计算机来说,这些都是用0和1表示的,只不过“理解”方式不同,你可以理解这个值是10进制,也可以理解成16进制,还可以理解成是个字符ascii码,你可以用不同的控制符输出同一个变量试试,%d %c %f %u %x 就用这5个,看看同一个值能被printf函数表示成什么。 题目的要求是在显示屏上面直接显示数字 真的只是要求显示数字吗?那直接printf("12345");不就可以了?这就是显示数字12345,但你给的代码,貌似是要求显示变量ch的值。 为什么不直接输入数字,显示数字呢?而是要绕一大圈输入ascii码的字母,出来却是数字? 还不如直接printf("%d\n", 'a'); 打印字符a的ascii码(是97),也可以用printf("%c\n", 97);打印出字符 a。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在生态系统中,从总体上看各组成成分储存的能
齐贤北街这个地址在什么地方,我要处理点事
现在买8000左右的地平线买什么样的比较好,外
天津爱情保卫战怎么参加
在大学生活中怎样面对我恐惧与人交往的心态
揭西县城市规划局在什么地方啊,我要过去处理
【chairperson】是recommend me to be the ch
电动工具印度市场如何?是DIY为主还是专业级
激战电视剧中演员介绍
新房我24小时通风了半个月,能入住吗?
永利超市(群英巷)地址有知道的么?有点事想过
急性肠套叠患儿在下列哪种情况下,不适宜采用
根据力与运动的关系.小明和小华的观点不同.
旺棠精品酒店公寓地址有知道的么?有点事想过
二十二点到二十二点半英语
推荐资讯
世纪家家福连锁超市NO.557怎么去啊,有知道地
香皂花怎么用
泰和昌店在哪里啊,我有事要去这个地方
煜美养生美容美体地址有知道的么?有点事想过
临清市个体私营企业协会先锋基层协会地址在什
雅马哈RX-385功放与飞利浦DH330卡拉OK机如何
求救!!淘宝上的包包比专柜的便宜200多呢 是
判断题三(1)班同学的平均体重是35千克,三
公历农历转换公式
如何消除团队中传播负能量的人以及有效阻止拉
(2012)一平面简谐波沿x轴正方向传播,振幅A=0
读下面的人民币兑美元牌价表,回答以下问题。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?