初学者2个小问题,用C/C++的。 两个function

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学者2个小问题,用C/C++的。 两个function相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <inttypes.h>
#include <sys/unistd.h>
#include <pthread.h>

struct Period
uint64_t begin;
uint64_t end;
uint64_t sum;
;

void sum(struct Period *p)

uint64_t i;
p->sum=0;
for(i=p->begin;i<p->end;++i) p->sum+=i;


uint64_t final_result(uint64_t maxnum,int nthreads)

if(n<=0) return;
int i;
uint64_t end,peroid=maxnum/nthreads;
uint64_t sum=0;
struct Period p;
p.begin=p.end=0;
void thread_result[nthreads];
pthread_t pids[nthreads];
for(i=0;i<nthreads;++i)
p.end+=peroid;
p.begin=p.end-peroid;
pthread_create(&pids[i],NULL,(void *)&sum,(void *)&p);

for(i=0;i<nthreads;++i)
pthread_join(&pids[i],&thread_result[i]);

for(i=0;i<nthreads;++i)
sum+=((struct Period)thread_result[i]).sum;

return sum;

int main(int argc, char *argv[])

if(argc!=3)
printf("usage:%s num n-threads.\n",argv[0]);
exit(0);

uint64_t maxnum=atoi(argv[1]);
int n=atoi(argv[2]);
printf("result:%llu\n",final_result(maxnum,n));
return 0;
参考技术A 一个初学者怎么会需要做这样的题,涉及线程,编译优化之类,是面试题? 参考技术B 贴代码比较好 参考技术C 貌似不是初学者的问题 参考技术D 这是那样啊 第5个回答  2013-04-04 太深奥了,是错误信息吗?

c语言:用数组来处理求Fibonacci数列问题

用数组来处理求Fibonacci数列问题。

解:程序:

#include<stdio.h>

int main()

int i, f[20] = 1,1 ;//对最前面两个元素f[0]和f[1]赋初值1

for (i = 2; i < 20; i++)

f[i] = f[i-2]+f[i-1];//先后求出f[2]~f[19]的值

for (i = 0; i<20; i++)

if (i % 5 == 0)//控制每输出5个数后换行

printf("\\n");

printf("%d\\t", f[i]);//输出一个数

printf("\\n");

return 0;

结果:

1       1       2       3       5

8       13      21      34      55

89      144     233     377     610

987     1597    2584    4181    6765

请按任意键继续. . .


本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1746391

以上是关于初学者2个小问题,用C/C++的。 两个function的主要内容,如果未能解决你的问题,请参考以下文章

初学 C 语言没有项目练手?这 20 个小项目拿走不谢~

2022-06-29:x = { a, b, c, d }, y = { e, f, g, h }, xy两个小数组长度都是4。 如果有: a + e = b + f = c + g = d + h

用C++编程求1+1/2!+1/3!+.....+1/12!,为啥无结果呢?求改正。

用C语言 如何从 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 中 随即选取其中两个 并输出这两个数的乘积?

用C语言编写斐波那契数列前10项(用简单的方法且只有两个变量)()非递归方法

如何级联两个二阶巴特沃斯滤波器