11.20周报
c语言周报
数组的初始化
数组的定义
例子:利用数组求和与均值
#include<stdio.h>
#define NUM 10
int main()
{
int s[NUM];
int i, sum = 0;
for (i = 0; i < 10;i++) {
printf(“请输入第%i位同学的成绩:”, i+1);
scanf_s("%d", &s[i]);
sum += s[i];
}
printf(“成绩输入完毕,学生的平均分是:%.2f\n”, (double)sum / NUM);
}
二维数组的初始化
例子:矩阵转置
#include<stdio.h>
int main()
{
int a[4][5] = { {90,39,45,67,23},
{54,32,45,34,45},
{34,56,78,96,65},
{34,54,65,23,90},
};
int i, j;
for (i = 0; i < 5;i++) {
for (j = 0; j < 4; j++) {
printf("%d", a[j][i]);
}
printf("\n");
}
}
指向数组的指针
指针数组与数组指针
算法题
迭代例1(计算1+1/2 -1/3 +1/4 -…+1/100)
#include<stdio.h>
int main()
{
//计算1+1/2 -1/3 +1/4 -…+1/100
int i, f = 1;
double sum = 1;
for (i = 2; i <= 100; i++) {
sum +=1.0 / i * f;
f = -f;
}
printf(“sum=%lf”, sum);
}
迭代例2(//计算1+ 1/1+2 +1/1+2+3/ +…+ 1/1+2+3+…+100)
#include<stdio.h>
int main()
{
//计算1+ 1/1+2 +1/1+2+3/ +…+ 1/1+2+3+…+100
int i, t = 1;
double sum = 1;
for (i = 2; i <= 100; i++) {
t = t+i;
sum = sum + 1.0 / t;
}
printf(“sum=%lf”, sum);
}
迭代例3(计算3/2+5/3+8/5+…)
#include<stdio.h>
int main()
{
//3/2+5/3+8/5+…
int i;
double a = 3, b = 2, t, sum = 0;
for (i = 0; i <20; i++) {
sum = sum + a / b;
t = a;
a = a + b;
b = t;
}
printf(“sum=%lf”, sum);
}
迭代例4(计算a+aa+aaa+…的前六项之和)
#include<stdio.h>
int main()
{
//3/2+5/3+8/5+…
int i;
double a = 3, b = 2, t, sum = 0;
for (i = 0; i < 20; i++) {
sum = sum + a / b;
t = a;
a = a + b;
b = t;
}
printf(“sum=%lf”, sum);
}
循环迭代(计算PI的近似值,已知PI/4=1 -1/3 +1/5 -1/7+…)
#include<stdio.h>
int main()
{
//计算PI的近似值,已知PI/4=1 -1/3 +1/5 -1/7+…
int i=1, f = 1;
double sum = 0;
while (1.0 / i > 1e-6) {
sum += 1.0 / i * f;
f = -f;
i += 2;
}
printf(“PI=%lf”, sum*4);
}
数字判断1(素数)
#include<stdio.h>
int main()
{
int n, i;
scanf_s("%d", &n);
for (i = 2; i <= n; i++) {
if (n%i == 0)
break;
}
if (n == i)
printf("YES");
else
printf("NO");
}
数字判断2(完数)
#include<stdio.h>
int main()
{
//输出100以内的完数(各因子之和等于该数)
int i, j, sum;
for (i = 6; i <100; i++) {
sum = 0;//因子之和清零
for (j = 1; j < i; j++)/寻找i的因子/ {
if (i%j == 0)
sum+= j;
}
if (i == sum)
printf("%4d", i);
}
}
数字判断3(同构数)
#include<stdio.h>
int main()
{
//输出100以内的同构数,同构数是平方后右侧的值与原数相等
int i;
for (i = 1; i < 1000; i++) {
if (ii % 10 == i||ii%100==i)
printf("%5d", i);
}
}
数字判断4(输出两个数的最小公倍数)
#include<stdio.h>
int main()
{
//输出2个数的最小公倍数
int a, b, i;
scanf_s("%d%d", &a, &b);
i = 1;
while (1)
{
if (i%a == 0 && i%b == 0) {
printf("%d", i);
break;
}
i++;
}
}
数字判断5(水仙花)
#include<stdio.h>
int main()
{
//输出一个三位数,使得每一位的立方和等于该三位数
int i, op, tp, hp;
for (i = 100; i < 1000; i++) {
op = i % 10;
tp = i / 10 % 10;
hp = i /100;
if (opopop+tptptp+hphphp == i)
printf("%d\n", i);
}
}
上一篇: 寒假第二周周报
下一篇: LeetCode 2 --两数相加