我是编码的新手,如果您能帮助我解决这个问题,我将不胜感激。我无法找出为什么我的代码没有给我正确的结果。感谢您的时间!!
问:
使用一维数组,计算右括号和右括号的数量。输入必须在一行中。
例如输入:(()))
输出:3 2
我使用一个数组在一行中接收输入,并使用for循环来计算打开/关闭括号的数量。
#include <stdio.h>
int main(){
char str[1000]; int l=0;r=0;
printf("Enter:\t");
gets(str);
int length=sizeof(str)/sizeof(str[0]);
for(int i=0;i!=EOF && i<length;i++)
{
if(str[i]=='(')
l++;
else if(str[i]==')')
r++;
}
printf("%d %d",l,r);
}
预期
输入:(())
输出:2 2
我得到什么
输入:(())
输出:6 2
最佳答案
您的循环是错误的(实际上是您的情况)
for(size_t i = 0; i < strlen(str);i++)
{
if(str[i]=='(')
{
l++;
}
if(str[i]==')')
{
r++;
}
}
关于c - 使用数组计算括号的数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53982440/