C语言的练习及讲解
不定期更新C语言的题目及做法,会写一些自己的心得,如有不正确的望指正
努力code的喵喵
题主双非学校,正在努力跨考计算机专业,一起努力呀
展开
-
求特殊字符a串(函数递归方法)Fabonacci数列之和(递归)
#include<stdio.h>#include<math.h>int Fan(int a,int n);int SumA(int a,int n);int main(){ int n,a; scanf("%d%d",&a,&n); printf("%d",SumA(a,n)); return 0;}int Fan(int a,int n){ if(n==1)return a;//用来作为终止条件 else return Fa...原创 2021-11-07 23:47:21 · 391 阅读 · 0 评论 -
C语言水仙花数 查找指定元素(函数做法)Ackermenn函数 三个数最大值 (宏定义)
代码如下#include<stdio.h>int Narnumber(int k);int main(){ int m,n,i; scanf("%d%d",&m,&n); for(i=m;i<=n;i++) if(Narnumber(i)==1)printf("%d ",i); return 0;}int Narnumber(int k){ if((k/100)*(k/100)*(k/100)+(k%10)*(k%10)*(k%10)+(...原创 2021-11-07 23:37:00 · 871 阅读 · 1 评论 -
C语言函数的简单题目
#include <stdio.h>#include <math.h>double fun(double x)//注意结果的返回值为double类型{ if(x>=10) return x*x; else return (sqrt(2.5+cos(x)))/(x*sin(x)+3); }int main(){ double x; scanf("%lf",&x); printf("%.3lf",fun(x));...原创 2021-10-29 23:34:08 · 881 阅读 · 0 评论 -
字符串加密(字母循环后移key个位置)
题目如图代码如下#include <stdio.h>int main() { char ch = 'a';//定义字符串且可以与Ascll码相互转换 int key = 0 ; scanf("%d", &key); getchar();//用来把scanf()中输入的'\n'吸收,如果没有这句话程序会自动终止,不会进行下面的getchar while((ch = getchar())!='\n') { if((ch.原创 2021-10-24 14:45:54 · 1187 阅读 · 0 评论 -
查找指定字符串
题目如下代码如下/*注意区分getchar()和gets()的区别getchar()来储存输入的字符串会储存我们最后敲的回车键'\n'gets()则不会储存,里面最后一个字符为停止符'\0' */ #include<stdio.h>int main(){ char a,s[100],i,b; scanf("%c",&a);//scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致) int flag=0; getch原创 2021-10-24 14:35:34 · 706 阅读 · 0 评论 -
筛选/插入元素(一位数组)c语言
题目如下代码如下#include<stdio.h>int main(){ int i,a[10],b,c[i]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++){ if(a[i]%3==0) printf("%d ",a[i]); } return 0;}题目如下代码如下#include<stdio.h>int main(){ int nu.原创 2021-10-19 00:45:21 · 347 阅读 · 1 评论 -
C语言找中位数(一位数组)
题目如下代码如下#include<stdio.h>int main(){ int n; scanf("%d",&n); int a[n],i,j,t; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n-1;i++){//冒泡排序将数组排序 for(j=0;j<n-1-i;j++) if(a[j]>a[j+1]){t=a[j+1];a[j+1]=a[j];a[j]=t..原创 2021-10-19 00:51:31 · 9618 阅读 · 0 评论 -
C语言编写一个程序将数组a中第k个元素删除
题目如图第一种方法是新定义一个数组为C[(n-1)],用来存储第k个元素删除的数组//第一种方法 #include<stdio.h>int main(){ int n,k,i; scanf("%d %d",&n, &k); int a[n],c[(n-1)]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<k;i++){//输出到第k-1的元素 c[i]=a[i]; } for.原创 2021-10-23 00:31:30 · 1312 阅读 · 0 评论 -
二维数组选择排序
如何对二维数组进行选择排序(先对行后对列)#include<stdio.h>int main(){ int n,m; scanf("%d %d",&n,&m); int a[n][m],j,i,k,f,temp,p; for(i=0;i<n;i++)//输入二维数组 for(j=0;j<m;j++) scanf("%d",&a[i][j]); for(i=0;i<n;i++)//对行原创 2021-10-17 23:59:21 · 1451 阅读 · 0 评论 -
C语言字符串题1、判断字符串s1中是否包含字符串s2。2、输入一个字符串s,删除其中所有的小写字符后形成一个新字符串
代码如下#include<stdio.h>#include<string.h>int main(){ char s1[30],s2[30]; char*str;//引用库函数strstr gets(s1);gets(s2);//引入字符串s1 s2 str=strstr(s1,s2);//找出字符串str2在字符串str1中第一次出现的位置 if(str!=NULL) printf("Yes"); else printf...原创 2021-10-19 22:10:53 · 1666 阅读 · 0 评论 -
判断上三角形矩阵
题目如图代码如下#include<stdio.h>int main(){ int n,i,j,flag; scanf("%d",&n); int a[n][n]; for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); flag=0; for(i=0;i<n;i++) for(j=0;j<n;j++){ if(i>j&&a[i][j]!=.原创 2021-10-24 13:32:08 · 291 阅读 · 0 评论 -
删除字符串中的字母,仅含数字
题目如图该题为改错题,要先理解原来程序使用的方法,提供的程序用两个不同变量作为下标,如果是数字字符则复制/*注意用 getchar()来输入字符串会读取'\n'*/ #include<stdio.h>int main(){ char s[100];//定义字符串数组 int i=0,j=0; while((s[i]=getchar())!='\n')i++; // s[i]=getchar()用来储存输入的字符串包含'\n' s[i]='\0';//把最后一个'.原创 2021-10-24 13:26:49 · 1430 阅读 · 0 评论 -
矩阵次对角线之和(C语言)
题目如图代码如下#include<stdio.h>int main(){ int a[5][5],i,j,sum; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf("%d",&a[i][j]);//输入数组 sum=0; for(i=0;i<5;i++){ for(j=5-i-1;j>=0;j--){ sum=sum+a[i][j]; break; } } printf("%d.原创 2021-10-24 13:29:51 · 3969 阅读 · 1 评论 -
二维数组冒泡排序
如何对数组进行冒泡排序(先对行再对列)代码如下#include <stdio.h>int main(){ int temp,i,j,m,n,k; scanf("%d %d",&n,&m); int b[n][m];//数组 for(i=0;i<n;i++){ for(j=0;j<m;j++) scanf("%d",&b[i][j]); } //下面的是对行的冒泡排序,让小的数据向左移 for (k = 0; k..原创 2021-10-17 12:04:32 · 1027 阅读 · 0 评论 -
方阵循环右移
题目如图第一种方法(参考了一位大佬的做法)思路如下代码如下//第一种方法 #include<stdio.h>int main(){ int n,m; scanf("%d%d",&m,&n); int a[n][n],i,j; for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); if(m>n)m=m%n;//如果m>n取余数,忽略前面重复的..原创 2021-10-24 14:05:36 · 2050 阅读 · 1 评论 -
C语言统计次数(一维数组)
题目如下代码如下#include<stdio.h>int main() { int n,count,max,maxcount; scanf("%d", &n); int a[n]; count=0;max = 0;maxcount = 0; int i,j; for (i = 0; i < n; i++) {scanf("%d", &a[i]);}//输入数组a[n] for (i = 0; .原创 2021-10-19 00:47:26 · 4212 阅读 · 1 评论 -
数组每行最大值
如何输出数组每一行的最大值代码如下#include<stdio.h>int main(){ int n,m,max; scanf("%d %d",&n,&m); //输入n,m 这样nm就不是变量是一个确定的数,下面就可以引入数组a[n][m] b[n] int a[n][m],i,j,b[n]; for(i=0;i<n;i++){ for(j=0;j<m;j++) scanf("%d",&a[i][j]);//输入二维数组原创 2021-10-17 12:09:55 · 1001 阅读 · 0 评论