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
求大神们指点
...全文
259 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
YuehanZhang 6天前

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

回复
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;
}
回复
你去查一下print的用法,是你让程序输入zmszoth的呀
回复
发动态
发帖子
新手乐园
创建于2007-09-28

3.2w+

社区成员

C/C++ 新手乐园
申请成为版主
社区公告
暂无公告