Skip to content
26 changes: 26 additions & 0 deletions 10月/7-1将数组中的数逆序存放.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# 24级一维数组
## 题目不难,就是格式啥的要看仔细楼
![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241025000221468-979502254.png)

```c
#include<stdio.h>
int main (){
int a[11] = {0};
int num;
int input;
scanf("%d",&num);
for(int i=num-1;i>=0;i--){//逆序存放!!!
scanf("%d",&input);
a[i] = input;
}
for(int i=0;i<num-1;i++){
printf("%d ",a[i]);//顺序输出
}
printf("%d",a[num-1]);//最后一个没有空格!!!



return 0;
}
```
### 今天很开心yes!
27 changes: 27 additions & 0 deletions 10月/7-1计算阶乘和.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 嵌套循环程序设计
## 7-1计算阶乘和
![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241020212340638-1414686416.png)
```c
#include<stdio.h>
int f(int a){
int sum = 1;
for(int i=1;i<=a;i++){
sum *= i;
}
return sum;
}//构造N!函数

int main(){
int N = 0,sum = 0;//初始化
scanf("%d",&N);
if(N>1){
for(int i=1;i<=N;i++){
sum += f(i);//实现N!+...+1!
}
printf("%d",sum);
}else{
printf("1");//N==1就没有必要用函数和循环。
}
return 0;
}
```
25 changes: 25 additions & 0 deletions 10月/7-2 求最大值及其下标 .md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# 一维数组 7-2 求最大值及其下标
## 题目
![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241027220325184-494781277.png)
## 题解
```c
#include <stdio.h>

int main()
{
int a[10],i,n,max,index;//max记录最大值,index记录最大值下标
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);//依次输入n个值,存入数组,C99,支持a[i]写法
}
max=a[0];
for(i=0;i<n;i++){
if(max<a[i]){//找到最大值
max=a[i];
index=i;
}
}
printf("%d %d",max,index);
return 0;
}
```
36 changes: 36 additions & 0 deletions 10月/7-3输出整数各位数字.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# 嵌套循环程序设计
## 7-3输出整数各位数字
![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241022220426309-1743140198.png)

```c
#include<stdio.h>
int f(t){//f(t)用于计算输入的数字是几位数
int i = 0;//i用来记录位数
if(t>9){
for(i=1;t>9;i++){//十进制 0~9,大于9就还可以分割
t /= 10;
}
return i;
}else{
return 1;//输入的是个位数,位数为1
}
}
int main(){
int N;
int a[50] = {0};//数组a[]记录每一位数字,50足够大,应该不会越界
scanf("%d",&N);//用户输入数字N
a[0] = N%10;//先记录个位数字
int tmp = f(N);//得到总位数tmp
for(int i=1;i<tmp;i++){
N/=10;//每次移掉最后的位数
a[i] = N%10;//将移除后最后一个数字记录在a[i]

}
for(int i=tmp-1;i>=0;i--){//逆序输出,注意次数是tmp次,但是从0开始,故tmp-1次
printf("%d ",a[i]);//空格隔开
}

return 0;
}

```
51 changes: 51 additions & 0 deletions 10月/7-6 找完数.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# 嵌套循环程序设计
## 7-4找完数
![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241023193856052-2007155799.png)
### 写破防了,自己想了快一下午写不动,最后看题解写的wwwwww
```c
#include<stdio.h>
int wanshu(int num){//素数的计算 + 格式化输出
//输出格式肯定不是全部用占位符那样表示的,这一点就整死我了!!!
int sum =0;
for(int i=1;i<num;i++){
if(num % i ==0){
sum += i;
}
}
if(sum == num){//比较看看是不是完数
printf("%d = 1",num);//打印格式:前半部分 e.g.6 = 1
for(int i=2;i<num;i++){
if(num % i == 0){
printf(" + %d",i);//打印格式:后半部分 e.r.+ ……
}
}
printf("\n");//打印格式:一行结束换行
return 1;//有完数
}

else{
return 0;//没有完数
}
}

int main(){//main函数只是一个指挥家,只负责输入,和判断有无完数存在
int m,n;
int count = 0;![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241023205047401-312647230.jpg)
scanf("%d %d",&m,&n);
for(int i=m;i<=n;i++){
if(wanshu(i) == 1){
count ++;
}
}
if(0 == count){
printf("None");
}

return 0;
}
```

心累累,输出格式好难,~~潜逃循环~~嵌套循环**好难**
*鱼鱼了*

![alt text](d55a2438dfd383cd5018d89fb139bf8c.jpeg)
35 changes: 35 additions & 0 deletions 10月/7-7 求n以内最大的k个素数以及它们的和.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# 嵌套循环 7-7 求n以内最大的k个素数以及它们的和
## 题目
![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241027215925878-269412487.png)
## 解答
```c
#include <stdio.h>
int main()
{
int n,k;
int a[5000] = {0};
int c = 0;//计数器,后面与k比较
scanf("%d%d",&n,&k);
int sum = 0;
for (int i = n;i > 1;i --)//从n开始向前遍历
{
int flag = 1;
for(int j = 2;j < i ;j ++)
{
if(i%j == 0) {
flag = 0;//引入参数flag,将结果传递
break;
}
}//判断是否为素数
if(flag == 1) {
a[c] = i;
c ++;
}
if(c==k) {break;}
}
for(int i = 0;i < c ;i ++) {sum += a[i];}
for(int i = 0;i < c - 1;i ++) {printf("%d+",a[i]);}//输出格式,分成两部分,前部分某某+
printf("%d=%d",a[c - 1],sum);//后部分...=...
return 0;
}
```
24 changes: 24 additions & 0 deletions 10月/7-9求交错序列前N项的和.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 单循环程序设计
## 7-9求交错序列前N项和
![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241022204754519-470167543.png)
```c
#include<stdio.h>
int main(){
int N = 0;//输入N值
double sum = 0;//sum记录最终结果,注意不要无脑int
scanf("%d",&N);
for(int i=1;i<=N;i++){
double tmp = (double)i / (2*i-1);//注意不要int/int了!
if(i%2 == 0){
sum -= tmp;//开始是-,从1开始,说明第偶数次是减法
}else{
sum += tmp;//第奇数次是+
}

}
printf("%0.3f",sum);//保留三位小数

return 0;
}

```
18 changes: 18 additions & 0 deletions 10月/index .md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 这是一个记录PTA题解的地方
### 用来鼓励自己每天都写写pta上的C语言题目
<u>新手小白</u>,解法难免~~睿智~~,欢迎大佬们提供**更巧妙的解法**
##### 也欢迎大家移步到我的[博客园](https://www.cnblogs.com/GJ504b/category/2427619.html)
作为同<u>新手小白</u>,我知道**pass**PTA上一道题是多么不容易
但是请一定坚持先独立思考
自己先想明白算法
再告诉computer这个~~小笨蛋~~怎么执行
最后debug!!!
实在想不出来再来看题解,问AI。
~~这个我不会,但是AI会呀~~
>放弃不难,但是坚持一定很酷。

![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241022231153959-828584361.jpg)
>前途是光明的,道路是曲折的。

共勉!
![alt text](b_8187bb80c19e16375526d2802385caed.jpg)
18 changes: 18 additions & 0 deletions 10月/嵌套循环填空题1输出方阵.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 嵌套循环程序设计
# 输出方阵
![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241021225727288-447681098.png)
```c
#include<stdio.h>
int main (){
int i, j, n;
scanf("%d", &n);
for(i=n*(n-1); i >= 0 ;i-=n) {//得到第一列-1【与后续的j配合,好巧妙】
for ( j = 1; j <= n; j++ ){//保证每行每次加1
printf("%4d",i+j);//保证数字的更新
}
printf("\n");
}
return 0;
}

```