C语言Printf格式字符串中传递的参数太多

D0wen 2020-12-15 11:41:12
#include<stdio.h>
#include<string.h>
int main() {
char str[80];
int zm = 0, sz = 0, oth = 0, i = 0;
gets_s(str,80);
while (str[i] != '\0'){
if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'z')
{
zm++;
}
else if (str[i] >= '0' && str[i] <= '9') {
sz++;
}
else
oth++;
i++;

}
printf("zm", zm);
printf("sz", sz);
printf("oth", oth);
return 0;
}

老师要求完成一个 统计从键盘输入的字符串各类字符的数量 的程序
我用vs2019编译运行就提示下面这些问题 并且不管输入什么输出结果也只是zmszoth
求大神们指点
...全文
3852 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
YuehanZhang 2021-07-20
  • 打赏
  • 举报
回复

看不懂你这两个代码差别在哪

D0wen 2020-12-15
  • 打赏
  • 举报
回复
解决了
#include<stdio.h>
#include<string.h>
int main() {
	char str[80];
	int zm = 0, sz = 0, oth = 0, i = 0;
	gets_s(str,80);
	while (str[i] != '\0'){
		if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'z')  // if后不能加; 否则后面的else无法匹配 
		{
			zm++;
		}
		else if (str[i] >= '0' && str[i] <= '9') {
			sz++;
		}
		else
			oth++;
		i++;
		
	}
	printf("zm=%d\n",zm);
	printf("sz=%d\n",sz);
	printf("oth=%d\n",oth);
	return 0;
}
cannot_realize_c 2022-10-09
  • 举报
回复
@D0wen 感觉没什么区别,只是多了一个十进制输出
百香果不酸鸭 2020-12-15
  • 打赏
  • 举报
回复
你去查一下print的用法,是你让程序输入zmszoth的呀

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧