几个单件C++题目,求帮忙解答。
我是网络工程专业的,现在的工作主要是java开发。
大四了,补考C++,去找老师,老师直接给题目了。都是最基本的,我会尝试写,会写在回帖中,也请各位朋友们帮忙看一下对不对,或者帮忙写一下。
1.给定一个数组,统计平均值。
2.给定一个数组,统计奇数位和偶数位的总和。
3.求1到100内所有的素数。
4.求1的阶乘到10的阶乘的和。例子:1+1*2+1*2*3+1*2*3*4+。。。。
5.创建一个时钟类,里面包含三个成员变量:时、分、秒。提供输入和输出方法。
6.实现一个2*3的矩阵的转置。
[解决办法]
int nCount = 0;
int n[len]....
for(int i = 0; i != len; i++)
nCount += n[i];
2 if(i%2 == 0) // 偶数位
...
else // 奇数位
3 ...
4
5
6
[解决办法]
写了前四题的。。
#include <stdio.h>
#include <string.h>
void f1(int a[], int n){
int sum = 0;
for(int i = 0; i < n; ++i) sum += a[i];
printf("avg = %.2lf\n", 1.0 * sum / n);
}
void f2(int a[], int n){
int sumodd = 0, sumeven = 0;
for(int i = 0; i < n; ++i){
if(i % 2) sumodd +=a[i];
else sumeven += a[i];
}
printf("sumodd = %d sumeven = %d\n", sumodd, sumeven);
}
void f3(){
bool isprime[101];
memset(isprime, true, sizeof(isprime));
for(int i = 2; i * i <= 100; ++i){
if(isprime[i]){
for(int j = i * i; j <= 100; j += i) isprime[j] = false;
}
}
printf("100以内的质数有:");
for(int i = 2; i <= 100; ++i){
if(isprime[i]) printf("%d ", i);
}
putchar('\n');
}
void f4(){
int sum = 0;
for(int i = 1; i <= 10; ++i){
int p = 1;
for(int j = 1; j <= i; ++j) p *= j;
sum += p;
}
printf("1-10的阶乘和:%d\n", sum);
}
int main(){
int a[] = {1, 2, 3, 4, 5, 6};
f1(a, 6);
f2(a, 6);
f3();
f4();
return 0;
}
double f1(int a[], int n)
{
double avg = 0;
int i;
for (i = 0; i < n; ++i)
{
avg += ((a[i] - avg) / (i + 1));
}
printf("avg = %.2lf\n", avg);
return avg;
}
void f2(int a[], int n)
{
int sumodd = 0, sumeven = 0;
int i;
if (n & 1)
{
sumodd += a[--n];
}
for (i = 0; i < n; i += 2)
{
sumeven += a[i];
sumodd += a[i + 1];
}
printf("sumodd = %d sumeven = %d\n", sumodd, sumeven);
}
int f4()
{
int sum = 0;
int p = 1;
int i;
for(i = 1; i <= 10; ++i)
{
p *= i;
sum += p;
}
printf("1-10的阶乘和:%d\n", sum);
return sum;
}