C语言编程题 函数的应用?
以下的程序实现的功能为:
主函数中定义一个包含10个浮点型数据的数组,
自定义函数实现如下功能:
函数func1()的功能是计算并输出数组的平均值;
函数func2()的功能是将数组的每个数取整数(题目未规定取整规则,程序中采用截尾取整),存储到新的数组里,并打印输出。
#include
voidfun1(floata[],intn)
{floats=0;
for(;n;)s+=a[--n];
printf("%f\n",s);
voidfun2(floata[],intb[],intn)
{inti;
for(i=0;i
{b[i]=a[i];
printf("%d",b[i]);
printf("\n");
intmain()
{inti;
floata[10];
intb[10];
for(i=0;i<10;i++)
scanf("%f",&a[i]);
fun1(a,10);
fun2(a,b,10);
return0;
for(;n;)s+=a[--n];
是什么意思?
这是简略写法。它等同于:
for(;n!=0;){--n;s=s+a[n];}
这个c语言编程题如何求解?
如果非要用两个函数,则:sum1函数可以用等差数列求和公式降低时间复杂度时间复杂度O(n)其实sum2本身就有求和公式:1+(1+2)+...+(1+2+...+n)=n(n+1)(n+2)÷6时间复杂度O(1)#include#include#define int unsigned long longusing namespace std;using namespace chrono;//法1(O(n^2))int sum11(int k){int s=0;for(int i=1;i<=k;i++) s+=i;return s;int sum12(int n){int s2=0;for(int i=1;i<=n;i++) s2+=sum11(i);return s2;//法2(O(n))int sum21(int k){return (1+k)*k/2;int sum22(int n){int s2=0;for(int i=1;i<=n;i++) s2+=sum21(i);return s2;int sum32(int n){return n*(n+1)*(n+2)/6;signed main(){auto start1=system_clock::now();cout<<"法1:"<
c语言函数例题
在我的系统中运行你 的程序和你想的一样,是8不是7.string 1,string 2:its a boyboyoffset 8 "boy"in"its a boy"所谓指针就是地址,只是指针会区别它是什么指针,对应的数据占多大内存。如subst,str都是char*类型的,他们是字符指针,所以他们指向的类型是字符。*str和str[0]的含义是一样的,意思是取得首字符。在c语言中字符串就是用字符指针来表示的,对应的是“%s”,而加上了*,是取这个字符指针地址的内容,也就是一个字符,用“%c”表示。所以你打印的是字符串,就应该用%s。