![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PTA
lzh,
坚持不掉头发
展开
-
递归计算Ackermenn函数 (15分)
int Ack( int m, int n ){ if( m == 0 ){ return n+1; }else if( n == 0 && m > 0 ){ return Ack(m-1,1); }else{ return Ack(m-1,Ack(m,n-1)); }}原创 2020-08-04 13:49:42 · 441 阅读 · 0 评论 -
使用递归函数计算1到n之和 (10分)
int sum( int n ){ int result; if(n<=0) return 0; else{ if(n==1){ result=1; } else result=n+sum(n-1); return result; }}原创 2020-07-30 21:46:20 · 3667 阅读 · 1 评论 -
字符串的连接 (15分)
char *str_cat( char *s, char *t ){ int len = strlen(s), count = 0; for(int i=len;i<MAXS+MAXS;i++){ *(s+i) = *(t+count); count++; } return s;}原创 2020-07-30 21:45:41 · 1846 阅读 · 0 评论 -
删除字符 (20分)
void delchar( char *str, char c ){ int i,j=0; for(i=0;*(str+i)!='\0';i++){ if(*(str+i) != c) *(str+(j++))=*(str+i); } *(str+j)='\0';}原创 2020-07-30 21:44:59 · 5464 阅读 · 3 评论 -
使用函数实现字符串部分复制 (20分)
void strmcpy(char *t, int m, char *s){ int i, j, len; strcpy(s, t); len = strlen(s); for (i = m - 1; i>0; i--) { for (j = i; j<len; j++) { *(s + j - 1) = *(s + j); } } *(s + len - m + 1) = '\0';}原创 2020-07-30 21:44:18 · 4545 阅读 · 2 评论 -
分类统计各类字符个数 (15分)
void StringCount( char *s ){ int cap=0,low=0,bla=0,num=0,els=0,i=0; while(s[i]!='\0') { if(s[i]>='A'&&s[i]<='Z') cap++; else if(s[i]>='a'&&s[i]<='z') low++; .原创 2020-07-30 21:43:32 · 798 阅读 · 0 评论 -
拆分实数的整数与小数部分 (15分)
void splitfloat( float x, int *intpart, float *fracpart ){ *intpart=(int)x; *fracpart=x-*intpart;}原创 2020-07-25 20:47:47 · 932 阅读 · 0 评论 -
数组循环右移 (20分)
int ArrayShift(int a[], int n, int m){ int i; while (m--) { int temp = a[n - 1]; for (i = n - 1; i >= 1; i--) a[i] = a[i - 1]; a[0] = temp; } return a;}原创 2020-07-25 20:45:24 · 594 阅读 · 0 评论 -
判断回文字符串 (20分)
bool palindrome( char *s ){ int i,n; n=strlen(s); if(n%2) { for(i=0;i<(n-1)/2;i++) { if(s[i]==s[n-1-i]) continue; else return false; } } else { for(i=0;i<n/2;i++) { if(s.原创 2020-07-25 20:44:06 · 293 阅读 · 0 评论 -
使用函数的选择法排序 (25分)
void sort( int a[], int n ){ int temp,p,t,i; for(p=0;p<n+1;p++) { t=p; for(i=p+1;i<n;i++) if (a[i]<a[t]) t=i; temp=a[t]; a[t]=a[p]; a[p]=temp; }}原创 2020-07-25 20:43:21 · 2487 阅读 · 0 评论 -
在数组中查找指定元素 (15分)
int search( int list[], int n, int x ){ int index = -1; for(int i=0;i<n;i++){ if(list[i] == x){ index = i; break; } } return index;}原创 2020-07-25 20:42:04 · 1065 阅读 · 0 评论 -
利用指针找最大值 (10分)
void findmax( int *px, int *py, int *pmax ){ if(*px > *py){ *pmax = *px; }else{ *pmax = *py; }}原创 2020-07-25 18:21:44 · 1973 阅读 · 0 评论 -
计算两数的和与差 (10分)
void sum_diff( float op1, float op2, float *psum, float *pdiff ){ *psum = op1 + op2; *pdiff = op1 - op2;}原创 2020-07-24 17:37:58 · 585 阅读 · 0 评论 -
使用函数求特殊a串数列和 (20分)
int fn(int a, int n){ int sum = 0, i; for (i = 1; i <= n; i++){ sum = sum + a; a = a * 10; } return sum;}int SumA(int a, int n){ int sum = 0; for (int i = 1; i <= n; i++){ sum = sum + fn(a, i); } return sum;}原创 2020-07-24 17:37:02 · 3571 阅读 · 0 评论 -
使用函数输出指定范围内的Fibonacci数 (20分)
int fib( int n ){ if(n==1||n==2) return 1; else return fib(n-1)+fib(n-2);} void PrintFN(int m, int n){ int i=1; int flag=1; int count=0; while(fib(i)<m) { i++; } while(fib(i)<=n) { .原创 2020-07-24 17:35:29 · 1063 阅读 · 0 评论 -
使用函数输出指定范围内的完数 (20分)
int factorsum( int number ){ int y=0,i; if(number==1) return number; else { for(i=1;i<number;i++) if(number%i==0) y=y+i; if(y==number) return number; else return -1; }}void Pri.原创 2020-07-24 17:34:24 · 2057 阅读 · 0 评论 -
使用函数验证哥德巴赫猜想 (20分)
int prime( int p ){ if(p==1) return 0; if(p==2||p==3) return 1; for(int i=2;i<=sqrt(p);i++) if(p%i==0) return 0; return 1;}void Goldbach( int n ){ int t; for(int i=1;i<n;i+=2) { .原创 2020-07-24 17:33:12 · 486 阅读 · 0 评论 -
使用函数输出一个整数的逆序数 (20分)
int reverse( int number ){ int i=1,a,sum=0; if(number<0){ number=-number; i=-1; } while(number){ a = number%10; sum = sum * 10 +a; number/=10; } sum*=i; return sum;}原创 2020-07-24 17:29:47 · 2090 阅读 · 0 评论 -
求m到n之和 (10分)
int sum(int m, int n){ int sum = 0; for(int i=m;i<=n;i++){ sum += i; } return sum;}原创 2020-07-24 17:28:40 · 685 阅读 · 0 评论 -
找两个数中最大者 (10分)
int max( int a, int b ){ int max; if(a > b){ max = a; }else{ max = b; } return max;}原创 2020-07-24 17:27:36 · 681 阅读 · 0 评论 -
使用函数输出水仙花数 (20分)
int narcissistic(int number){ int x; int count = 0; int temp; int sum = 0; int pow; temp = number; do { count++; temp = temp / 10; } while (temp!=0); .原创 2020-07-24 08:51:34 · 3332 阅读 · 1 评论 -
使用函数求余弦函数的近似值 (15分)
double funcos( double e, double x ){ double sum=1; double item=1; double cifang=2; double fenzi,fenmu; double flag=-1; int i; while(item>e){ for(i=1;i<=cifang;i++){ fenmu=fenmu*i; } fenzi=pow(x,cifang);.原创 2020-07-24 08:50:27 · 4534 阅读 · 4 评论 -
使用函数统计指定数字的个数 (15分)
int CountDigit( int number, int digit ){ int count=0; if(number<0){ number = -number; } if(number == 0){ return 1; } while(number){ if(number%10 == digit){ count++; } number /= 10; } return count;}原创 2020-07-24 08:48:32 · 2171 阅读 · 3 评论 -
使用函数求最大公约数 (10分)
int gcd( int x, int y ){ int min,num; if(x < y){ min = x; }else{ min = y; } for(int i=min;i>0;i--){ if(x%i == 0 && y%i == 0){ num = i; break; } } return num;}原创 2020-07-24 08:47:28 · 3483 阅读 · 0 评论 -
使用函数计算两个复数之积 (10分)
void complex_prod( double x1, double y1, double x2, double y2 ){ result_real = x1*x2 - y1*y2; result_imag = x1*y2 + x2*y1;}原创 2020-07-22 20:53:45 · 1779 阅读 · 0 评论 -
数字金字塔 (15分)
void pyramid( int n ){ for(int i=1;i<=n;i++){ for(int j=n-i;j>0;j--){ printf(" "); } for(int j=1;j<=i;j++){ printf("%d ",i); } printf("\n"); }}原创 2020-07-21 17:46:30 · 1821 阅读 · 1 评论 -
使用函数求素数和 (20分)
int prime( int p ){ if(p<=1){ return 0; } int flag = 1; for(int i=2;i<p;i++){ if(p%i == 0){ flag = 0; } } return flag;}int PrimeSum( int m, int n ){ int sum=0; for(int i=m;i<=n;i++){ if(prime(i)!=0){ sum+=i; } } return.原创 2020-07-21 17:45:21 · 710 阅读 · 0 评论 -
使用函数判断完全平方数 (10分)
int IsSquare( int n ){ int x; x=sqrt(n); return(x*x==n?1:0);}原创 2020-07-21 17:44:28 · 1132 阅读 · 0 评论 -
使用函数求1到10的阶乘和 (10分)
double fact( int n ){ double sum=1; for(int i=1;i<=n;i++){ sum *= i; } return sum;}原创 2020-07-21 17:32:42 · 3217 阅读 · 0 评论 -
符号函数 (10分)
int sign( int x ){ if(x>0) {return (1);} else if(x==0) {return (0);} else {return (-1);}}原创 2020-07-21 17:08:49 · 1733 阅读 · 0 评论 -
使用函数计算两点间的距离 (10分)
double dist(double x1,double y1,double x2,double y2){ double num=pow((x2-x1),2)+pow((y2-y1),2); double ans=sqrt(num); return ans; }原创 2020-07-21 12:16:09 · 1422 阅读 · 0 评论 -
值班安排 (50分)
#include<stdio.h>struct condition{ int obj1; //用于存储输入的第一个字母- 'A'的值 int obj2; //存储第二个字母的 int num; //存储数字 int ret; //是否是 = }condition[20];int judge(int *a,int n); //判断函数 int main(void){ int n; scanf("%d\n",&n); int i; char s[5];.原创 2020-07-21 12:08:29 · 1977 阅读 · 0 评论 -
自动售货机 (30分)
#include<stdio.h>int main(void){ char a[10][20] = {"Table-water","Table-water","Table-water","Coca-Cola","Milk","Beer","Orange-Juice","Sprite","Oolong-Tea","Green-Tea"}; int b[11] = {0,0,0,0,0,0,0,0,0,0,0}; int c[50]; int i=1, k, sum = 0, .原创 2020-07-21 12:07:35 · 563 阅读 · 0 评论 -
字符串排序 (20分)
#include<stdio.h>#include<string.h>int main(){ char str[5][80],temp[80]; for(int i=0;i<5;i++){ scanf("%s",&str[i]); } for(int i=1;i<5;i++){ for(int j=0;j<5-i;j++){ if(strcmp(str[j],str.原创 2020-07-21 12:03:03 · 263 阅读 · 0 评论 -
找最小的字符串 (15分)
#include<stdio.h>#include<string.h>int main(){ char a[10000][80]; int n, min; char temp[80]; scanf("%d",&n); getchar(); for(int i=0;i<n;i++) gets(a[i]); for(int i=0;i<n-1;i++){ min=i; for(int j=i+1;j<n;j++) if(st.原创 2020-07-21 12:01:57 · 5713 阅读 · 3 评论 -
找最小的字符串 (15分)
#include<stdio.h>#include<string.h>int main(){ char a[10000][80]; int n, min; char temp[80]; scanf("%d",&n); getchar(); for(int i=0;i<n;i++) gets(a[i]); for(int i=0;i<n-1;i++){ min=i; for(int j=i+1;j<n;j++) if(st.原创 2020-07-30 19:00:26 · 1611 阅读 · 1 评论 -
简单计算器 (20分)
#include<stdio.h> #include<string.h>int main(){ int a,b,result,index=1; char ch; scanf("%d",&a); result=a; while(scanf("%c",&ch)){ switch(ch){ case '+':{ scanf("%d",&b); result+=b; break; }.原创 2020-07-16 19:25:11 · 309 阅读 · 0 评论 -
统计一行文本的单词个数 (15分)
#include<stdio.h>int main(){ char c,str[1000]; int i,count=0,number=0; gets(str); for(i=0;;i++) { c = str[i]; if(c=='\0') break; if(c==' ')number=0; else if(number == 0) { .原创 2020-07-16 19:24:35 · 822 阅读 · 0 评论 -
字符转换 (15分)
#include<stdio.h>#include<string.h>int main(){ char str[100]; gets(str); int num = 0; int len = strlen(str); for(int i=0;i<len;i++){ if(str[i]>='0'&&str[i]<='9') num = num*10 + str[i] -'0'; } printf("%d",num);.原创 2020-07-16 19:23:58 · 8823 阅读 · 10 评论 -
字符串替换 (15分)
#include<stdio.h>#include<string.h>int main(){ char str[100]; gets(str); int len = strlen(str); for(int i=0;i<len;i++){ if(str[i]>='A'&&str[i]<='Z') printf("%c",155-str[i]); else printf("%c",str[i]); } retu.原创 2020-07-16 19:23:21 · 215 阅读 · 0 评论