编程求出1到100之内能被3或者5整除,但不能同时被3和5整除的所有整数,并将他们放在a所指的数组中,并统计出共有多少个数满足条件?

weixin_45875990 2019-11-14 09:53:52
C++:编程求出1到100之内能被3或者5整除,但不能同时被3和5整除的所有整数,并将他们放在a所指的数组中,并统计出共有多少个数满足条件?
...全文
4310 52 打赏 收藏 转发到动态 举报
写回复
用AI写文章
52 条回复
切换为时间正序
请发表友善的回复…
发表回复
debugdebugger 2019-12-06
  • 打赏
  • 举报
回复
引用 15 楼 早打大打打核战争 的回复:

#include <stdio.h>

int main()
{
  const int N = 100 / 3 + 100 / 5 - 100 / 15 * 2;

  printf("%d\n", N);
  for (int a[N] = {3, 5, 6, 9, 10, 12}, i = 0; i < N; i++)
    printf("%d ", a[i] ? a[i] : a[i] = a[i - 6] + 15);

  return 0;
}
另外,90009同学不要用自己的脑力去推测别人~~~
这个在Windows用gcc 编译不过,我加了-std=c99了,错误是初始化a[N]那里,“error: variable-sized object may not be initialized|”
debugdebugger 2019-12-06
  • 打赏
  • 举报
回复
引用 15 楼 早打大打打核战争 的回复:

#include <stdio.h>

int main()
{
  const int N = 100 / 3 + 100 / 5 - 100 / 15 * 2;

  printf("%d\n", N);
  for (int a[N] = {3, 5, 6, 9, 10, 12}, i = 0; i < N; i++)
    printf("%d ", a[i] ? a[i] : a[i] = a[i - 6] + 15);

  return 0;
}
另外,90009同学不要用自己的脑力去推测别人~~~
这个在Windows用gcc编译不过,加了-std=c99了,请问你是用什么编译器啊,谢谢
web_noob 2019-11-28
  • 打赏
  • 举报
回复
JavaScript let a=[] for(let i=1;i<101;i++){ If(i%3==0||i%5==0){ If(i%15!=0){ a.push(i) } } } console.log(a.length)
qq_45911436 2019-11-25
  • 打赏
  • 举报
回复
可以解释一下int f[]之前的内容嘛?谢谢
qq_45911436 2019-11-25
  • 打赏
  • 举报
回复
数组加contiune语句就行了
再简单点 2019-11-25
  • 打赏
  • 举报
回复
引用 61 楼 lin5161678的回复:
[quote=引用 60 楼 weixin_45696883 的回复:] [quote=引用 楼主 weixin_45875990的回复:]C++:编程求出1到100之内能被3或者5整除,但不能同时被3和5整除的所有整数,并将他们放在a所指的数组中,并统计出共有多少个数满足条件?
#include<stdio.h> int main() { int n,i; char a[100];//用来存放满足条件的数 i=0; for(n=1; n<=100; n++) { if((n%3==0)+(n%5==0)==1) { printf("%d\n",n); a[i]=n; i++; } } printf("%d",i);//i的值为为满足条件的数的个数 return 0; }[/quote]数组没有一样并增加隐患 还是删掉比较好 [/quote] 题目中不是有存放要求?
lin5161678 2019-11-25
  • 打赏
  • 举报
回复
引用 60 楼 weixin_45696883 的回复:
[quote=引用 楼主 weixin_45875990的回复:]C++:编程求出1到100之内能被3或者5整除,但不能同时被3和5整除的所有整数,并将他们放在a所指的数组中,并统计出共有多少个数满足条件?
#include<stdio.h> int main() { int n,i; char a[100];//用来存放满足条件的数 i=0; for(n=1; n<=100; n++) { if((n%3==0)+(n%5==0)==1) { printf("%d\n",n); a[i]=n; i++; } } printf("%d",i);//i的值为为满足条件的数的个数 return 0; }[/quote]数组没有一样并增加隐患 还是删掉比较好
再简单点 2019-11-25
  • 打赏
  • 举报
回复
引用 楼主 weixin_45875990的回复:
C++:编程求出1到100之内能被3或者5整除,但不能同时被3和5整除的所有整数,并将他们放在a所指的数组中,并统计出共有多少个数满足条件?
#include<stdio.h> int main() { int n,i; char a[100];//用来存放满足条件的数 i=0; for(n=1; n<=100; n++) { if((n%3==0)+(n%5==0)==1) { printf("%d\n",n); a[i]=n; i++; } } printf("%d",i);//i的值为为满足条件的数的个数 return 0; }
lin5161678 2019-11-24
  • 打赏
  • 举报
回复
引用 56 楼 荀子曰:$ 的回复:
(i%3==0)+(i%5==0) == 2,就可以了啊
== 1才对
荀子曰:$ 2019-11-24
  • 打赏
  • 举报
回复
(i%3==0)+(i%5==0) == 2,就可以了啊
qq_45823435 2019-11-20
  • 打赏
  • 举报
回复
i%3==0 i%5==0 i%15!=0
Zxy0918520 2019-11-20
  • 打赏
  • 举报
回复

#include <range/v3/iterator/stream_iterators.hpp>
#import <iostream>
#include <range/v3/view.hpp>
#include <range/v3/algorithm.hpp>

int main()
{
    using namespace ranges;
    
    auto rng=views::ints(1,100)|views::filter(
                                [](int x)
                                {
                                    return (std::modulus<int>()(x,3)==0||std::modulus<int>()(x,5)==0)&&std::modulus<int>()(x,15)!=0;
                                })
                               |to<std::vector>();
    ranges::copy(rng,ranges::ostream_iterator<>{std::cout," "});
    
    return 0;
}
solon777 2019-11-20
  • 打赏
  • 举报
回复
for(n=0,i =1;i <=100;i ++) {if(((i %3)+(i %5))==0) break; if(!(i%3) {a[n]=i;n++;break;} if(!(i%5){a[n]=i ;n++;}} cout <<n-1<<“n个数字符合”<<endl;
weixin_45902623 2019-11-19
  • 打赏
  • 举报
回复
写好没有?我也想要。
  • 打赏
  • 举报
回复 2
李 易 2019-11-18
  • 打赏
  • 举报
回复
#include<iostream> using namespace std; int main() { int i; int j; int a[100]; j=0; for(i=1;i<100;i++) { if((i%3==0 && i%5 != 0) || (i%3 !=0 && i%5==0)) { a[j++]=i; } } cout<<"一共"<<j<<"个整数符合条件:"; for(i=0;i<j;i++) { cout<<a[i]<<" "; } return 0; }
寻开心 2019-11-17
  • 打赏
  • 举报
回复
做几个测试变量打印出指针地址就能看到
a[丨]在栈地址顶上。如果后绪没栈操作你可以越界一大段

但是a[41]不行。周边为其他

寻开心 2019-11-17
  • 打赏
  • 举报
回复
int a
cin >> a
int p[a]// 这种情况

它是动态大小。在栈中分配非预编译的

const b = 10* a. 也为动态非预编
lin5161678 2019-11-17
  • 打赏
  • 举报
回复
引用 30 楼 寻开心 的回复:
是的。
a[l]是在栈内存, 但是他们是不相连的, 是在第一次用到它的时候在栈里面‘动态’开辟出来的
f也是栈内存,但是是在编译的时候就指定好了的

内存关系:
new / malloc 是堆内存,可以很大
函数体内的变量都是栈内存,有默认大小,一般都不会太大
全局变量是固定的静态区,
前两者都是动态内存, 最后那个是静态内存
如果你注意到 这个const 是编译期就能算出来的常量
也许你就不会有 运行期开辟的错觉
lin5161678 2019-11-17
  • 打赏
  • 举报
回复
引用 43 楼 debugdebugger 的回复:
新手请教一下他这段代码的原理是什么,谢谢

15个数为一个周期
每个周期里面 3, 5, 6, 9, 10, 12符合条件
加载更多回复(32)

64,677

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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