c语言-C语音课后习题,答案不能输出。在线等~谢谢

问题描述

C语音课后习题,答案不能输出。在线等~谢谢

输入一行字符,统计字母,空格,数字,其他字符,结果不能输出,我看了答案和我的程序一样的。。。
代码如下
#include
int main()
{
int i=0,j=0,k=0,s=0;
char c;
printf("please input string:n");
c=getchar();
while(c!='n')
{
if(c>='A'&&c<='Z'||c>='a'&&c<='z')i=i+1;
else if(c==' ')j=j+1;
else if(c>='0'&&c<='9')k=k+1;
else s=s+1;
}
printf("word:%dn space:%dn number:%dn other:%dn",i,j,k,s);
return 0;
}

输出如下:

解决方案

是这样的,你使用的变量c是一个字符而不是字符串,而你在输入的时候敲入的第一个字符是i,所以c就等于字符i,所以在你的循环体里面,c永远不会等于'n',那么该while循环就会一直执行下去,所以当你输入了这一行字符串之后,程序进入了死循环,从而导致了程序后续没有输出的结果。
如果要写出正确的程序,就不该用字符变量c,而是使用字符串(也就是字符构成的数组),然后在while循环中逐个检查字符串中的元素,进行计数和统计,然后用字符串的结束符号''来作为循环结束的条件。

解决方案二:

while((c=getchar())!='n')
注意要有括号,因为!=优先级高。

解决方案三:

while(c=getchar()!='n')
{...}

解决方案四:

在循环最后再读一个字符啊,不然永远判断的都是同一个字符

解决方案五:

因为在第一次输入时,C为真,进入While循环,在while循环中C的值未改变,导致While循环未退出,应该将c=getchar();放在While循环内

解决方案六:

while((c=getchar())!='n')
{}
你的循环体里就没有输入了啊,所以永远出不了结果。

解决方案七:

你应该把c=getchar();写入while循环中,改为while((c = getchar()) != 'n'),否则第一次getchar的时候获取字符i,此时进入了while循环,条件永远成立,所以永远不会跳出while循环,对于后面的字符也是无法获取的。

时间: 2024-08-02 15:12:05

c语言-C语音课后习题,答案不能输出。在线等~谢谢的相关文章

屈婉玲-算法设计与分析课后习题答案

问题描述 算法设计与分析课后习题答案 需要算法设计与分析屈婉玲课后习题答案,希望哪位大神帮帮忙!大恩不言谢 解决方案 算法设计与分析课后习题3.2算法设计与分析课后习题3.5数据结构与算法分析课后习题第四章(1) 解决方案二: http://download.csdn.net/download/xiaomashengjie/6828333 不谢~

计算机教材-求计算机组成与设计硬件/软件接口第5版课后习题答案,请发到348853203@qq.com

问题描述 求计算机组成与设计硬件/软件接口第5版课后习题答案,请发到348853203@qq.com 求计算机组成与设计硬件/软件接口第5版课后习题答案,请发到348853203@qq.com 谢谢 解决方案 你还不如直接找你们学长要,多思考,别总是看答案!

课后习题答案-c和指针中 关于指针的问题

问题描述 c和指针中 关于指针的问题 如果 q 是一个整形指针 表达式 *++*q 左值地址 和 右值 分别是? 解决方案 这段时间一直在看C语言方面的内容,为的是巩固一下基础知识,把握一些细节上的东西. 指针一直是C语言中的难点,也是重点.每年的面试题,在这上面来下功夫为难我们的也不算少数.所以自己把这部分又复习了一遍,现在把一些重点的东西写下来. 指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成内存里的一个地址,要搞清楚一个指针......答案就在这里:C指针的一些问题 解决方案二

课后习题答案-求概率论与数理统计答案!

问题描述 求概率论与数理统计答案! 谁有中国农业出版社,张丽娜和李春兰主编的概率论与数理统计的答案,求共享 解决方案 这个百度一下 会有很多资源吧.你可以搜一下 PDF 版,网上会有的.

数据结构 习题答案

问题描述 数据结构 习题答案 若一个线性表L采用顺序存储结构存储,其中所有元素为整数,设计一个算法,将所有小于0的元素面前,要求算法的时间复杂度为O(n),空间复杂度为O(l) 解决方案 #include <stdio.h> void swp(int& a, int& b) { int c = a; a = b; b = c; } int main() { int z = 0, i = 0; int data[] = {2,-1,0,5,-3,8,-2,-9,0,8}; for

C++之类和对象课后习题简单实例_C 语言

建立一个对象数组,内放5个学生的(学号,成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生的最高成绩者,并输出其学号. #include<iostream> using namespace std; class Student {public: Student(int=10,int=0); int number; int score; void display(); }; Student::Student(int num,int sco):number(num)

《计算机网络:自顶向下方法(原书第6版)》一课后习题和问题

课后习题和问题 复习题2.1节 R1.列出5种非专用的因特网应用及它们所使用的应用层协议. R2.网络体系结构与应用程序体系结构之间有什么区别? R3.对两进程之间的通信会话而言,哪个进程是客户,哪个进程是服务器? R4.对一个P2P文件共享应用,你同意"一个通信会话不存在客户端和服务器端的概念"的说法吗?为什么? R5.运行在一台主机上的一个进程,使用什么信息来标识运行在另一台主机上的进程? R6.假定你想尽快地处理从远程客户到服务器的事务,你将使用UDP还是TCP?为什么? R7.

c++-C++如何转C语言,跪求帮忙转一下,在线等答案

问题描述 C++如何转C语言,跪求帮忙转一下,在线等答案 各位学长,能不能帮小妹做个作业啊,把C++转换为C语言//附合水准路线解算.cpp#include #include #include #include using namespace std; void Data_Calculate();//数据解算void Data_Show();//结果打印到屏幕void Data_Output();//结果输出到TXT int v[4] i=0;double h[4] L[4] h_v[4] H[

请问大家一个c++primer练习7.27的问题,按照习题答案这样写,提示我参数过多

问题描述 请问大家一个c++primer练习7.27的问题,按照习题答案这样写,提示我参数过多 #include <iostream> #include <string> #include<vector> using namespace std; class Screen { private: unsigned height = 0, width = 0; unsigned cursor = 0; string contents; public: Screen() =