diff --git "a/10\346\234\210/7-1\345\260\206\346\225\260\347\273\204\344\270\255\347\232\204\346\225\260\351\200\206\345\272\217\345\255\230\346\224\276.md" "b/10\346\234\210/7-1\345\260\206\346\225\260\347\273\204\344\270\255\347\232\204\346\225\260\351\200\206\345\272\217\345\255\230\346\224\276.md" new file mode 100644 index 0000000..b8a8fde --- /dev/null +++ "b/10\346\234\210/7-1\345\260\206\346\225\260\347\273\204\344\270\255\347\232\204\346\225\260\351\200\206\345\272\217\345\255\230\346\224\276.md" @@ -0,0 +1,26 @@ +# 24级一维数组 +## 题目不难,就是格式啥的要看仔细楼 +![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241025000221468-979502254.png) + +```c +#include +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 + 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; + } +``` \ No newline at end of file diff --git "a/10\346\234\210/7-2 \346\261\202\346\234\200\345\244\247\345\200\274\345\217\212\345\205\266\344\270\213\346\240\207 .md" "b/10\346\234\210/7-2 \346\261\202\346\234\200\345\244\247\345\200\274\345\217\212\345\205\266\344\270\213\346\240\207 .md" new file mode 100644 index 0000000..1e21380 --- /dev/null +++ "b/10\346\234\210/7-2 \346\261\202\346\234\200\345\244\247\345\200\274\345\217\212\345\205\266\344\270\213\346\240\207 .md" @@ -0,0 +1,25 @@ +# 一维数组 7-2 求最大值及其下标 +## 题目 +![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241027220325184-494781277.png) +## 题解 +```c +#include + +int main() +{ + int a[10],i,n,max,index;//max记录最大值,index记录最大值下标 + scanf("%d",&n); + for(i=0;i +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=0;i--){//逆序输出,注意次数是tmp次,但是从0开始,故tmp-1次 + printf("%d ",a[i]);//空格隔开 + } + + return 0; +} + +``` diff --git "a/10\346\234\210/7-6 \346\211\276\345\256\214\346\225\260.md" "b/10\346\234\210/7-6 \346\211\276\345\256\214\346\225\260.md" new file mode 100644 index 0000000..993667e --- /dev/null +++ "b/10\346\234\210/7-6 \346\211\276\345\256\214\346\225\260.md" @@ -0,0 +1,51 @@ +# 嵌套循环程序设计 +## 7-4找完数 +![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241023193856052-2007155799.png) +### 写破防了,自己想了快一下午写不动,最后看题解写的wwwwww +```c +#include +int wanshu(int num){//素数的计算 + 格式化输出 +//输出格式肯定不是全部用占位符那样表示的,这一点就整死我了!!! + int sum =0; + for(int i=1;i +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; +} +``` diff --git "a/10\346\234\210/7-9\346\261\202\344\272\244\351\224\231\345\272\217\345\210\227\345\211\215N\351\241\271\347\232\204\345\222\214.md" "b/10\346\234\210/7-9\346\261\202\344\272\244\351\224\231\345\272\217\345\210\227\345\211\215N\351\241\271\347\232\204\345\222\214.md" new file mode 100644 index 0000000..f392d9d --- /dev/null +++ "b/10\346\234\210/7-9\346\261\202\344\272\244\351\224\231\345\272\217\345\210\227\345\211\215N\351\241\271\347\232\204\345\222\214.md" @@ -0,0 +1,24 @@ +# 单循环程序设计 +## 7-9求交错序列前N项和 +![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241022204754519-470167543.png) +```c +#include +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; +} + +``` diff --git "a/10\346\234\210/index .md" "b/10\346\234\210/index .md" new file mode 100644 index 0000000..09e96aa --- /dev/null +++ "b/10\346\234\210/index .md" @@ -0,0 +1,18 @@ +# 这是一个记录PTA题解的地方 +### 用来鼓励自己每天都写写pta上的C语言题目 +新手小白,解法难免~~睿智~~,欢迎大佬们提供**更巧妙的解法** +##### 也欢迎大家移步到我的[博客园](https://www.cnblogs.com/GJ504b/category/2427619.html) +作为同新手小白,我知道**pass**PTA上一道题是多么不容易 +但是请一定坚持先独立思考 +自己先想明白算法 +再告诉computer这个~~小笨蛋~~怎么执行 +最后debug!!! +实在想不出来再来看题解,问AI。 +~~这个我不会,但是AI会呀~~ +>放弃不难,但是坚持一定很酷。 + +![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241022231153959-828584361.jpg) +>前途是光明的,道路是曲折的。 + + 共勉! +![alt text](b_8187bb80c19e16375526d2802385caed.jpg) diff --git "a/10\346\234\210/\345\265\214\345\245\227\345\276\252\347\216\257\345\241\253\347\251\272\351\242\2301\350\276\223\345\207\272\346\226\271\351\230\265.md" "b/10\346\234\210/\345\265\214\345\245\227\345\276\252\347\216\257\345\241\253\347\251\272\351\242\2301\350\276\223\345\207\272\346\226\271\351\230\265.md" new file mode 100644 index 0000000..4e5f9d5 --- /dev/null +++ "b/10\346\234\210/\345\265\214\345\245\227\345\276\252\347\216\257\345\241\253\347\251\272\351\242\2301\350\276\223\345\207\272\346\226\271\351\230\265.md" @@ -0,0 +1,18 @@ +# 嵌套循环程序设计 +# 输出方阵 +![img](https://img2023.cnblogs.com/blog/3492455/202410/3492455-20241021225727288-447681098.png) +```c +#include +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; +} + +```