标题:想不明白呀?求大佬告知
只看楼主
梦伦
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-6-18
结帖率:50%
已结贴  问题点数:20 回复次数:6 
想不明白呀?求大佬告知
#include<stdio.h>
//static int s;//为什么放在这里可以
int main()
{
int i,n,s;
scanf("%d",&n);
for(i=1;i<n;i++)
{
    if((i%3==0)&&(i%5==0))
    {  static s=0;//为什么static在这时下面的输出的s是乱码
        printf("%d,",i);
        s=s+1;
   
    }
}
printf("=>共%d个数满足条件\n",s);
 }
搜索更多相关主题的帖子: 个数 printf 乱码 int static 
2020-06-21 21:14
梦伦
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-6-18
得分:0 
求大佬告知

2020-06-21 21:14
牧人马
Rank: 4
等 级:业余侠客
威 望:6
帖 子:49
专家分:229
注 册:2017-12-24
得分:10 
放在第二行相当于一个全局变量,所有函数都可以调用,第二个注释的地方只能作用于if的范围内,可以类比:
程序代码:
for(int i=0;i<10;i++)
printf("this is i:%d",i);
printf("this is not i:%d",i);

另外关于静态变量,这篇博客解释的很详细了 https://

[此贴子已经被作者于2020-6-22 01:23编辑过]

2020-06-22 01:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
你的代码没法编译通过,因为“int i,ns;”中有个中文逗号。
另外,“printf("=>共%d个数满足条件\n",s);”中 s 定义在 “int i,n,s;”,而它一直没有被初始化或赋值过。

正确的代码应该是
程序代码:
#include <stdio.h>

int main( void )
{
    unsigned n;
    scanf( "%u", &n );

    unsigned s = 0;
    for( unsigned i=1; i!=n; ++i )
    {
        if( i%3==0 && i%5==0 )
        {
            printf( "%u,", i );
            ++s;
        }
    }
    printf( " => 共%u个数满足条件\n", s );

 }
2020-06-22 08:28
梦伦
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-6-18
得分:0 
回复 4楼 rjsp
好的,谢谢大佬。我打错了。
2020-09-06 22:14
梦伦
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-6-18
得分:0 
谢谢楼上的大佬。
2020-09-06 22:15
bbbt321
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2020-8-27
得分:0 
学习一下
2020-09-13 14:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502218-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.308228 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved