c语言字符计算的问题。。
解决时间 2021-03-05 00:08
- 提问者网友:雾里闻花香
- 2021-03-04 11:22
要求输入字符串,包含字符数,行数,和单词数。。
请高手帮忙看一下程序哪出错了。。
#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;
}
是对字符串中的行数,字符数,单词进行计数。。
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-03-04 12:11
#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;
}
全部回答
- 1楼网友:拾荒鲤
- 2021-03-04 12:23
第一,请把双引号改成单引号,你声明的不是字符串,只是一个只能存放单个字符的变量,双引号用于括住字符串。
第二,你那个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。
我要举报
大家都在看
推荐资讯