铜锣烧学电子 2022-03-12 15:29 采纳率: 78.6%
浏览 20
已结题

为什么我在函数里面定义一下变量,结果输出就是0 0了

问题遇到的现象和发生背景

img


我在函数里面定义了一下num1和2;

问题相关代码,请勿粘贴截图

#include<stdio.h>
int num1,num2;
void cn(char s[])
{

int i=0;
int num1=0,num2=0;//为什么人这个地方int去掉就正确了,不去掉就是输出 0  0
while(s[i]!='\0')
i++;
for(;i>=0;i--)
{
if((s[i]>='A')&&(s[i]<='Z'))
   num1++;
if((s[i]>='a')&&(s[i]<='z'))
   num2++;
}

}
int main()
{
char s[101];
while(~scanf("%s",s))
{
cn(s);
printf("%d %d\n",num1,num2);
}
return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

我吧int去掉就正确了

我想要达到的结果

给我讲一下为什么吧

  • 写回答

1条回答 默认 最新

  • qq_41851997 2022-03-12 16:30
    关注

    num 1 2作用域的问题
    上面的1 2是全局变量。而cn里面的num 1 2是局部变量,
    因为cn里面定义了num 1 2,所以你一开始写的num1 2在cn里面是不生效的,在cn里面改变的num1 2是改变他自己的值,不是全局变量的值。如果cn里面不去定义这两个变量,那么才会生效全局变量的那两个

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月20日
  • 已采纳回答 3月12日
  • 创建了问题 3月12日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么