用c语言编写(4)编写程序,分别使用while、do while、for 语句计算,并输出如下算式前20项的和,结果保留2位小数(5)编写程序,输入n和相应的n个数,统计输入的数中正数、零及负数的个数(6)编写程序,输入正整数a,得到a以内的所有的完美数,并计算其个数。完美数指一个数恰好等于它的因子之和,如6的因子是1、2、3,且1+2+3=6, 故6是完美数。1不是完美数
时间: 2024-03-16 12:43:46 浏览: 97
2023年C语言程序设计基本知识点.doc
好的,以下是你需要的 C 语言代码:
(4) 使用 while 循环计算并输出前20项的和:
```c
#include <stdio.h>
int main()
{
int i = 1;
float s = 0;
while (i <= 20)
{
s += 1.0 / (i * i);
i++;
}
printf("前20项和为:%.2f", s);
return 0;
}
```
(4) 使用 do while 循环计算并输出前20项的和:
```c
#include <stdio.h>
int main()
{
int i = 1;
float s = 0;
do
{
s += 1.0 / (i * i);
i++;
} while (i <= 20);
printf("前20项和为:%.2f", s);
return 0;
}
```
(4) 使用 for 循环计算并输出前20项的和:
```c
#include <stdio.h>
int main()
{
float s = 0;
for (int i = 1; i <= 20; i++)
{
s += 1.0 / (i * i);
}
printf("前20项和为:%.2f", s);
return 0;
}
```
(5) 输入 n 和 n 个数,统计输入的数中正数、零及负数的个数:
```c
#include <stdio.h>
int main()
{
int n, num, positive = 0, zero = 0, negative = 0;
printf("请输入 n 的值:");
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
printf("请输入第%d个数:", i);
scanf("%d", &num);
if (num > 0)
{
positive++;
}
else if (num == 0)
{
zero++;
}
else
{
negative++;
}
}
printf("正数个数:%d,零的个数:%d,负数个数:%d", positive, zero, negative);
return 0;
}
```
(6) 输入正整数 a,得到 a 以内的所有完美数,并计算其个数:
```c
#include <stdio.h>
int is_perfect_number(int n)
{
int factors[100];
int count = 0;
for (int i = 1; i < n; i++)
{
if (n % i == 0)
{
factors[count] = i;
count++;
}
}
int sum = 0;
for (int i = 0; i < count; i++)
{
sum += factors[i];
}
return sum == n;
}
int main()
{
int a, count = 0;
printf("请输入正整数 a:");
scanf("%d", &a);
for (int i = 1; i <= a; i++)
{
if (is_perfect_number(i))
{
printf("%d\n", i);
count++;
}
}
printf("共有%d个完美数。", count);
return 0;
}
```
希望这些代码能够帮助你!
阅读全文