如果对哪段代码有疑问或什么不懂可以的加QQ3418208634( 欢迎交流~)
如果觉得杂鱼灰太狼哪题讲的不好的欢迎指出,我去修改捏~
[之前134出现不可控bug,现已修复,并由godyu进行补全134-150]
域为三个月前不可控BUG的存在未成功修复抱歉,现在已经全部提交完毕.
1101: 逆序数字(函数专题)
//注意:题目要求只需提交inverse函数部分即可int inverse(int n)int m=0; //定义最终需要返回的结果,注意应赋值为0,不然m的值会随机生成do{int x=n%10; //把最低位提取出来m=m*10+x; <qc>//逆序相加</qc>n/=10; //舍弃最低位}while(n>0); //判断是否需要继续逆序return m; //把结果传回main函数,注意题目只需传回逆序数值,而不是相加值}//注意:题目要求只需提交inverse函数部分即可 int inverse(int n) int m=0; //定义最终需要返回的结果,注意应赋值为0,不然m的值会随机生成 do{ int x=n%10; //把最低位提取出来 m=m*10+x; <qc>//逆序相加</qc> n/=10; //舍弃最低位 }while(n>0); //判断是否需要继续逆序 return m; //把结果传回main函数,注意题目只需传回逆序数值,而不是相加值 }//注意:题目要求只需提交inverse函数部分即可 int inverse(int n) int m=0; //定义最终需要返回的结果,注意应赋值为0,不然m的值会随机生成 do{ int x=n%10; //把最低位提取出来 m=m*10+x;
//逆序相加 n/=10; //舍弃最低位 }while(n>0); //判断是否需要继续逆序 return m; //把结果传回main函数,注意题目只需传回逆序数值,而不是相加值 }
1102: 火车票退票费计算(函数专题)
double CancelFee(double price){double change=0; //定义并把退票费初始化double x=price*0.05; //先计算退票费用double y=(int)(price*0.05); //保留整数部分while(x>=1) //先把整数部分去掉看小数部分{x--;}if(x<0.25) //尾数小于0.25元的舍去{x=0;}else if(x>=0.25&&x<0.75) //不小于0.25元且小于0.75元的计为0.5元{x=0.5;}else if(x>=0.75) //不小于0.75元的进为1元{x=1;}change=x+y; //总退票费return change;}double CancelFee(double price) { double change=0; //定义并把退票费初始化 double x=price*0.05; //先计算退票费用 double y=(int)(price*0.05); //保留整数部分 while(x>=1) //先把整数部分去掉看小数部分 { x--; } if(x<0.25) //尾数小于0.25元的舍去 { x=0; } else if(x>=0.25&&x<0.75) //不小于0.25元且小于0.75元的计为0.5元 { x=0.5; } else if(x>=0.75) //不小于0.75元的进为1元 { x=1; } change=x+y; //总退票费 return change; }double CancelFee(double price) { double change=0; //定义并把退票费初始化 double x=price*0.05; //先计算退票费用 double y=(int)(price*0.05); //保留整数部分 while(x>=1) //先把整数部分去掉看小数部分 { x--; } if(x<0.25) //尾数小于0.25元的舍去 { x=0; } else if(x>=0.25&&x<0.75) //不小于0.25元且小于0.75元的计为0.5元 { x=0.5; } else if(x>=0.75) //不小于0.75元的进为1元 { x=1; } change=x+y; //总退票费 return change; }
1103: 平均学分绩点(函数专题)
#include<stdio.h>int GP(int n){if(n<60) //低于六十分没有G点{return 0;}elsereturn (n-50)/10; //六十分以上算出G点并返回值}int main(){int n,m,ncase;scanf("%d",&ncase); //输入n门课程double sum1=0,sum2=0;while(ncase--){scanf("%d %d",&m,&n); //输入学分和成绩sum1+=GP(n)*m; //算出并累加每门课的绩点乘以该门课的学分sum2+=m; //算出总学分}printf("%.1f",sum1/sum2); //输出平均学分绩点,保留一位小数return 0;}#include<stdio.h> int GP(int n) { if(n<60) //低于六十分没有G点 { return 0; } else return (n-50)/10; //六十分以上算出G点并返回值 } int main() { int n,m,ncase; scanf("%d",&ncase); //输入n门课程 double sum1=0,sum2=0; while(ncase--) { scanf("%d %d",&m,&n); //输入学分和成绩 sum1+=GP(n)*m; //算出并累加每门课的绩点乘以该门课的学分 sum2+=m; //算出总学分 } printf("%.1f",sum1/sum2); //输出平均学分绩点,保留一位小数 return 0; }#include<stdio.h> int GP(int n) { if(n<60) //低于六十分没有G点 { return 0; } else return (n-50)/10; //六十分以上算出G点并返回值 } int main() { int n,m,ncase; scanf("%d",&ncase); //输入n门课程 double sum1=0,sum2=0; while(ncase--) { scanf("%d %d",&m,&n); //输入学分和成绩 sum1+=GP(n)*m; //算出并累加每门课的绩点乘以该门课的学分 sum2+=m; //算出总学分 } printf("%.1f",sum1/sum2); //输出平均学分绩点,保留一位小数 return 0; }
1104: 求因子和(函数专题)
#include<stdio.h>int FacSum(int n){int sum=1; //因为1是肯定有的,直接赋值1减少一次循环,优化算法for(int i=2;i<=n/2;i++) //这里涉及到一个小技巧,因子不可能比的这个数的一半大,所以直接n/2,优化算法提高效率{if(n%i==0) //这里遍历一下查找因子{sum+=i; //找到直接相加}}return sum; //把和返回}int main(){int n;scanf("%d",&n);int result=FacSum(n); //调用并接收函数printf("%d",result);}#include<stdio.h> int FacSum(int n) { int sum=1; //因为1是肯定有的,直接赋值1减少一次循环,优化算法 for(int i=2;i<=n/2;i++) //这里涉及到一个小技巧,因子不可能比的这个数的一半大,所以直接n/2,优化算法提高效率 { if(n%i==0) //这里遍历一下查找因子 { sum+=i; //找到直接相加 } } return sum; //把和返回 } int main() { int n; scanf("%d",&n); int result=FacSum(n); //调用并接收函数 printf("%d",result); }#include<stdio.h> int FacSum(int n) { int sum=1; //因为1是肯定有的,直接赋值1减少一次循环,优化算法 for(int i=2;i<=n/2;i++) //这里涉及到一个小技巧,因子不可能比的这个数的一半大,所以直接n/2,优化算法提高效率 { if(n%i==0) //这里遍历一下查找因子 { sum+=i; //找到直接相加 } } return sum; //把和返回 } int main() { int n; scanf("%d",&n); int result=FacSum(n); //调用并接收函数 printf("%d",result); }
1105: 判断友好数对(函数专题)
#include<stdio.h>int facsum(int n){int sum=0;if(n==2)return 1; //2只有一个正因子1(除本身)if(n>2){for(int i=1;i<n;i++) //遍历寻找因子{if(n%i==0){sum+=i; //找到则相加}}}return sum;}int main(){int m,n,an=0; //an为标识,用于判断输出scanf("%d %d",&m,&n);for(int j=m;j<=n;j++) //遍历m到n之间的数{int num;num=facsum(j); //调用函数接收正因子之和if(j==facsum(num)&&j<num) //如果俩个数正因子之和相等,且比这个数小,则为友好数对,不加后面那个判断则会输出俩次{printf("%d %d\n",j,num);an=1; //标识更改}}if(an==0) //找不到则输出没有答案printf("No answer");return 0;}#include<stdio.h> int facsum(int n) { int sum=0; if(n==2) return 1; //2只有一个正因子1(除本身) if(n>2) { for(int i=1;i<n;i++) //遍历寻找因子 { if(n%i==0) { sum+=i; //找到则相加 } } } return sum; } int main() { int m,n,an=0; //an为标识,用于判断输出 scanf("%d %d",&m,&n); for(int j=m;j<=n;j++) //遍历m到n之间的数 { int num; num=facsum(j); //调用函数接收正因子之和 if(j==facsum(num)&&j<num) //如果俩个数正因子之和相等,且比这个数小,则为友好数对,不加后面那个判断则会输出俩次 { printf("%d %d\n",j,num); an=1; //标识更改 } } if(an==0) //找不到则输出没有答案 printf("No answer"); return 0; }#include<stdio.h> int facsum(int n) { int sum=0; if(n==2) return 1; //2只有一个正因子1(除本身) if(n>2) { for(int i=1;i<n;i++) //遍历寻找因子 { if(n%i==0) { sum+=i; //找到则相加 } } } return sum; } int main() { int m,n,an=0; //an为标识,用于判断输出 scanf("%d %d",&m,&n); for(int j=m;j<=n;j++) //遍历m到n之间的数 { int num; num=facsum(j); //调用函数接收正因子之和 if(j==facsum(num)&&j<num) //如果俩个数正因子之和相等,且比这个数小,则为友好数对,不加后面那个判断则会输出俩次 { printf("%d %d\n",j,num); an=1; //标识更改 } } if(an==0) //找不到则输出没有答案 printf("No answer"); return 0; }
1106: 回文数(函数专题)
//只需要求出这个数的逆序并判断俩数是否相等即可#include<stdio.h>int hws(int i){int sum=0;while(i>9){sum+=i%10;i/=10;sum=sum*10;}return sum+i; //返回逆序结果}int main(){int m,n;scanf("%d %d",&m,&n);for(int i=m;i<=n;i++){int num=hws(i);if(i==num) //若俩数相等则为回文数{printf("%d ",i);}}return 0;}//只需要求出这个数的逆序并判断俩数是否相等即可 #include<stdio.h> int hws(int i) { int sum=0; while(i>9) { sum+=i%10; i/=10; sum=sum*10; } return sum+i; //返回逆序结果 } int main() { int m,n; scanf("%d %d",&m,&n); for(int i=m;i<=n;i++) { int num=hws(i); if(i==num) //若俩数相等则为回文数 { printf("%d ",i); } } return 0; }//只需要求出这个数的逆序并判断俩数是否相等即可 #include<stdio.h> int hws(int i) { int sum=0; while(i>9) { sum+=i%10; i/=10; sum=sum*10; } return sum+i; //返回逆序结果 } int main() { int m,n; scanf("%d %d",&m,&n); for(int i=m;i<=n;i++) { int num=hws(i); if(i==num) //若俩数相等则为回文数 { printf("%d ",i); } } return 0; }
1107: 回文数猜想(函数专题)
//这题比上一题多加了一个循环判断#include<stdio.h>int inverse(int n){int sum=0;while(n>=10) //求出逆序数{sum+=n%10;n/=10;sum*=10;}return sum+n;}int main(){int n,m;scanf("%d",&n);while(m=inverse(n),m!=n) //m接收n的倒序数,若不相等则开始循环{printf("%d ",n); //输出过程值,注意有空格n=m+n; //正序和倒序相加,开始第二轮循环}printf("%d",m); //输出最后的回文数return 0;}//这题比上一题多加了一个循环判断 #include<stdio.h> int inverse(int n) { int sum=0; while(n>=10) //求出逆序数 { sum+=n%10; n/=10; sum*=10; } return sum+n; } int main() { int n,m; scanf("%d",&n); while(m=inverse(n),m!=n) //m接收n的倒序数,若不相等则开始循环 { printf("%d ",n); //输出过程值,注意有空格 n=m+n; //正序和倒序相加,开始第二轮循环 } printf("%d",m); //输出最后的回文数 return 0; }//这题比上一题多加了一个循环判断 #include<stdio.h> int inverse(int n) { int sum=0; while(n>=10) //求出逆序数 { sum+=n%10; n/=10; sum*=10; } return sum+n; } int main() { int n,m; scanf("%d",&n); while(m=inverse(n),m!=n) //m接收n的倒序数,若不相等则开始循环 { printf("%d ",n); //输出过程值,注意有空格 n=m+n; //正序和倒序相加,开始第二轮循环 } printf("%d",m); //输出最后的回文数 return 0; }
1108: 打印数字图形(函数专题)
//本题应找出每行空格与数字的规律#include<stdio.h>void PrintDigit(int m){for(int i=1;i<=m;i++) //左边逐递增{printf("%d",i);}m--; //使m-1,不输出最高位while(m>=1) //右边逐渐递减{printf("%d",m--);}}void PrintSpace(int m) //打印空格{for(int i=0;i<m;i++){printf(" ");}}int main(){int m;scanf("%d",&m);for(int i=1;i<=m;i++) //打印上半部分{PrintSpace(m-i); //上半部分空格逐渐递减PrintDigit(i); //数字逐渐增加printf("\n"); //换行}for(int j=1;j<m;j++) //打印下半部分{PrintSpace(j); //空格逐渐递增PrintDigit(m-j); //数字逐渐减少if(j!=m-1) //该判断可以使最后一行不用换行printf("\n");}return 0;}//本题应找出每行空格与数字的规律 #include<stdio.h> void PrintDigit(int m) { for(int i=1;i<=m;i++) //左边逐递增 { printf("%d",i); } m--; //使m-1,不输出最高位 while(m>=1) //右边逐渐递减 { printf("%d",m--); } } void PrintSpace(int m) //打印空格 { for(int i=0;i<m;i++) { printf(" "); } } int main() { int m; scanf("%d",&m); for(int i=1;i<=m;i++) //打印上半部分 { PrintSpace(m-i); //上半部分空格逐渐递减 PrintDigit(i); //数字逐渐增加 printf("\n"); //换行 } for(int j=1;j<m;j++) //打印下半部分 { PrintSpace(j); //空格逐渐递增 PrintDigit(m-j); //数字逐渐减少 if(j!=m-1) //该判断可以使最后一行不用换行 printf("\n"); } return 0; }//本题应找出每行空格与数字的规律 #include<stdio.h> void PrintDigit(int m) { for(int i=1;i<=m;i++) //左边逐递增 { printf("%d",i); } m--; //使m-1,不输出最高位 while(m>=1) //右边逐渐递减 { printf("%d",m--); } } void PrintSpace(int m) //打印空格 { for(int i=0;i<m;i++) { printf(" "); } } int main() { int m; scanf("%d",&m); for(int i=1;i<=m;i++) //打印上半部分 { PrintSpace(m-i); //上半部分空格逐渐递减 PrintDigit(i); //数字逐渐增加 printf("\n"); //换行 } for(int j=1;j<m;j++) //打印下半部分 { PrintSpace(j); //空格逐渐递增 PrintDigit(m-j); //数字逐渐减少 if(j!=m-1) //该判断可以使最后一行不用换行 printf("\n"); } return 0; }
1109: 数根(函数专题)
#include<stdio.h>int digitSum(int n){int sum=0;while(n>9) //只要是大于或等于俩位数就分离{sum+=n%10; //提取最低位并相加n/=10; //除去最低位}return sum+n; //返回各个位上数字的和}int main(){int n,x;scanf("%d",&n);if(n>9){x=digitSum(n); //调用函数并接收函数返回的值while(x>9) //如果返回的值还是俩位数或以上则继续相加{int t=n;n=x;x=t;x=digitSum(n);}printf("%d",x);}elseprintf("%d",n);return 0;}#include<stdio.h> int digitSum(int n) { int sum=0; while(n>9) //只要是大于或等于俩位数就分离 { sum+=n%10; //提取最低位并相加 n/=10; //除去最低位 } return sum+n; //返回各个位上数字的和 } int main() { int n,x; scanf("%d",&n); if(n>9) { x=digitSum(n); //调用函数并接收函数返回的值 while(x>9) //如果返回的值还是俩位数或以上则继续相加 { int t=n; n=x; x=t; x=digitSum(n); } printf("%d",x); } else printf("%d",n); return 0; }#include<stdio.h> int digitSum(int n) { int sum=0; while(n>9) //只要是大于或等于俩位数就分离 { sum+=n%10; //提取最低位并相加 n/=10; //除去最低位 } return sum+n; //返回各个位上数字的和 } int main() { int n,x; scanf("%d",&n); if(n>9) { x=digitSum(n); //调用函数并接收函数返回的值 while(x>9) //如果返回的值还是俩位数或以上则继续相加 { int t=n; n=x; x=t; x=digitSum(n); } printf("%d",x); } else printf("%d",n); return 0; }
1110: 最近共同祖先(函数专题)
/*观察图中孩子与双亲的关系,如果双亲编号为i,左孩子为2*i,右孩子为2*i+1。反之,对于一个编号为i的结点,不论奇数偶数,除以2取整就是i。所以我们可以用递归让较大的数(也就是辈分低的数)向上找双亲,直到他们相遇*/#include<stdio.h>int common(int x,int y){if(x==y) //如果相等,x的值则为共同祖先return x;else if(x>y){return common(x / 2, y); //若x较大则让x向上走}elsereturn common(x, y / 2); //若y较大则让y向上走}int main(){int x, y,j;scanf("%d %d", &x, &y);j = common(x, y); //调用并接收函数传递回来的值printf("%d", j);}/*观察图中孩子与双亲的关系,如果双亲编号为i,左孩子为2*i,右孩子为2*i+1。反之,对于一个编号为i的结点,不论奇数偶数,除以2取整就是i。所以我们可以用递归让较大的数(也就是辈分低的数)向上找双亲,直到他们相遇*/ #include<stdio.h> int common(int x,int y) { if(x==y) //如果相等,x的值则为共同祖先 return x; else if(x>y) { return common(x / 2, y); //若x较大则让x向上走 } else return common(x, y / 2); //若y较大则让y向上走 } int main() { int x, y,j; scanf("%d %d", &x, &y); j = common(x, y); //调用并接收函数传递回来的值 printf("%d", j); }/*观察图中孩子与双亲的关系,如果双亲编号为i,左孩子为2*i,右孩子为2*i+1。反之,对于一个编号为i的结点,不论奇数偶数,除以2取整就是i。所以我们可以用递归让较大的数(也就是辈分低的数)向上找双亲,直到他们相遇*/ #include<stdio.h> int common(int x,int y) { if(x==y) //如果相等,x的值则为共同祖先 return x; else if(x>y) { return common(x / 2, y); //若x较大则让x向上走 } else return common(x, y / 2); //若y较大则让y向上走 } int main() { int x, y,j; scanf("%d %d", &x, &y); j = common(x, y); //调用并接收函数传递回来的值 printf("%d", j); }
1111: 多个整数的逆序输出(函数专题)
//好好理解一下递归捏#include<stdio.h>void inverse(int n){int num;scanf("%d", &num); //读一个整数存入numif(n>1) //如果n有多个数则开始递归逆序输出{inverse(n - 1);printf("%d ", num);}if(n==1) //若只有一行则直接输出printf("%d ", num);}int main(){int n;scanf("%d", &n);inverse(n); //调用函数return 0;}//好好理解一下递归捏 #include<stdio.h> void inverse(int n) { int num; scanf("%d", &num); //读一个整数存入num if(n>1) //如果n有多个数则开始递归逆序输出 { inverse(n - 1); printf("%d ", num); } if(n==1) //若只有一行则直接输出 printf("%d ", num); } int main() { int n; scanf("%d", &n); inverse(n); //调用函数 return 0; }//好好理解一下递归捏 #include<stdio.h> void inverse(int n) { int num; scanf("%d", &num); //读一个整数存入num if(n>1) //如果n有多个数则开始递归逆序输出 { inverse(n - 1); printf("%d ", num); } if(n==1) //若只有一行则直接输出 printf("%d ", num); } int main() { int n; scanf("%d", &n); inverse(n); //调用函数 return 0; }
1112: 进制转换(函数专题)
//特别简单,明白递归的原理,直接倒序输出就好了#include<stdio.h>void convert(int n){if(n>0) //使用递归倒序输出余数{convert(n / 2);printf("%d", n % 2);}}int main(){int n;scanf("%d", &n);convert(n);}//特别简单,明白递归的原理,直接倒序输出就好了 #include<stdio.h> void convert(int n) { if(n>0) //使用递归倒序输出余数 { convert(n / 2); printf("%d", n % 2); } } int main() { int n; scanf("%d", &n); convert(n); }//特别简单,明白递归的原理,直接倒序输出就好了 #include<stdio.h> void convert(int n) { if(n>0) //使用递归倒序输出余数 { convert(n / 2); printf("%d", n % 2); } } int main() { int n; scanf("%d", &n); convert(n); }
1113: 递归调用的次数统计(函数专题)
//题目给了斐波那契数列的求法,我们只需填充枝叶即可#include<stdio.h>int fib(int k){if(k==1||k==2)return 1;else //return fib(k - 1) + fib(k - 2);}int main(){int n;scanf("%d", &n);printf("%d\n", fib(n));printf("递归调用了%d次", 2*fib(n)-1); //我们仔细观察函数,发现else的return有俩个递归,所以次数为2*fib(n)-1次return 0;}//题目给了斐波那契数列的求法,我们只需填充枝叶即可 #include<stdio.h> int fib(int k) { if(k==1||k==2) return 1; else // return fib(k - 1) + fib(k - 2); } int main() { int n; scanf("%d", &n); printf("%d\n", fib(n)); printf("递归调用了%d次", 2*fib(n)-1); //我们仔细观察函数,发现else的return有俩个递归,所以次数为2*fib(n)-1次 return 0; }//题目给了斐波那契数列的求法,我们只需填充枝叶即可 #include<stdio.h> int fib(int k) { if(k==1||k==2) return 1; else // return fib(k - 1) + fib(k - 2); } int main() { int n; scanf("%d", &n); printf("%d\n", fib(n)); printf("递归调用了%d次", 2*fib(n)-1); //我们仔细观察函数,发现else的return有俩个递归,所以次数为2*fib(n)-1次 return 0; }
1114: 逆序
//本题考察的是对数组下标的理解#include<stdio.h>int main(){int n;scanf("%d",&n);int arr[n]; //定义一个长度为n的数组for(int i=0;i<n;i++) //数组下标从0开始数{scanf("%d",&arr[i]); //依次把值存进数组}for(int i=n-1;i>=0;i--) //数组最大下标为长度-1,然后倒序输出{printf("%4d",arr[i]); //占四列,右对齐}return 0;}//本题考察的是对数组下标的理解 #include<stdio.h> int main() { int n; scanf("%d",&n); int arr[n]; //定义一个长度为n的数组 for(int i=0;i<n;i++) //数组下标从0开始数 { scanf("%d",&arr[i]); //依次把值存进数组 } for(int i=n-1;i>=0;i--) //数组最大下标为长度-1,然后倒序输出 { printf("%4d",arr[i]); //占四列,右对齐 } return 0; }//本题考察的是对数组下标的理解 #include<stdio.h> int main() { int n; scanf("%d",&n); int arr[n]; //定义一个长度为n的数组 for(int i=0;i<n;i++) //数组下标从0开始数 { scanf("%d",&arr[i]); //依次把值存进数组 } for(int i=n-1;i>=0;i--) //数组最大下标为长度-1,然后倒序输出 { printf("%4d",arr[i]); //占四列,右对齐 } return 0; }
1115: 数组最小值
#include <stdio.h>int main () {int n, a = 0;scanf("%d", &n);int room[1000]; //n不大于1000,即数组的长度不大于1000for (int i = 0; i < n; i++) //读入数组{scanf("%d", &room[i]);}int min = room[0];for (int j = 0; j < n; j++){if (min > room[j]) //一个简单的排序找出最小值{min = room[j];a = j;}}printf("%d %d", min, a); //输出最小值及其下标return 0;}#include <stdio.h> int main () { int n, a = 0; scanf("%d", &n); int room[1000]; //n不大于1000,即数组的长度不大于1000 for (int i = 0; i < n; i++) //读入数组 { scanf("%d", &room[i]); } int min = room[0]; for (int j = 0; j < n; j++) { if (min > room[j]) //一个简单的排序找出最小值 { min = room[j]; a = j; } } printf("%d %d", min, a); //输出最小值及其下标 return 0; }#include <stdio.h> int main () { int n, a = 0; scanf("%d", &n); int room[1000]; //n不大于1000,即数组的长度不大于1000 for (int i = 0; i < n; i++) //读入数组 { scanf("%d", &room[i]); } int min = room[0]; for (int j = 0; j < n; j++) { if (min > room[j]) //一个简单的排序找出最小值 { min = room[j]; a = j; } } printf("%d %d", min, a); //输出最小值及其下标 return 0; }
1116: 删除元素
#include <stdio.h>// 删除数组A中下标为i的元素void del(int a[], int n, int i){// 判断i是否超出数组范围if (i < 0 || i >= n){printf("Invalid index\n");return;}// 将数组A中下标为i的元素之后的元素向前移动一位for (int j = i; j < n - 1; j++){a[j] = a[j + 1];}// 数组长度减1n--;}// 打印数组Avoid PrintArr(int a[], int n){// 遍历数组Afor (int i = 0; i < n; i++){printf("%d", a[i]);if (i < n - 1){printf(" ");}}printf("\n");}int main(){// 输入数组长度和要删除的元素下标int n, i;scanf("%d", &n);int A[n];// 输入数组A的元素for (int i = 0; i < n; i++){scanf("%d", &A[i]);}scanf("%d", &i);// 调用del函数删除数组A中下标为i的元素del(A, n, i);// 打印删除元素后的数组PrintArr(A, n - 1); // 输出删除元素后的数组,跳过最后一个元素return 0;}#include <stdio.h> // 删除数组A中下标为i的元素 void del(int a[], int n, int i) { // 判断i是否超出数组范围 if (i < 0 || i >= n) { printf("Invalid index\n"); return; } // 将数组A中下标为i的元素之后的元素向前移动一位 for (int j = i; j < n - 1; j++) { a[j] = a[j + 1]; } // 数组长度减1 n--; } // 打印数组A void PrintArr(int a[], int n) { // 遍历数组A for (int i = 0; i < n; i++) { printf("%d", a[i]); if (i < n - 1) { printf(" "); } } printf("\n"); } int main() { // 输入数组长度和要删除的元素下标 int n, i; scanf("%d", &n); int A[n]; // 输入数组A的元素 for (int i = 0; i < n; i++) { scanf("%d", &A[i]); } scanf("%d", &i); // 调用del函数删除数组A中下标为i的元素 del(A, n, i); // 打印删除元素后的数组 PrintArr(A, n - 1); // 输出删除元素后的数组,跳过最后一个元素 return 0; }#include <stdio.h> // 删除数组A中下标为i的元素 void del(int a[], int n, int i) { // 判断i是否超出数组范围 if (i < 0 || i >= n) { printf("Invalid index\n"); return; } // 将数组A中下标为i的元素之后的元素向前移动一位 for (int j = i; j < n - 1; j++) { a[j] = a[j + 1]; } // 数组长度减1 n--; } // 打印数组A void PrintArr(int a[], int n) { // 遍历数组A for (int i = 0; i < n; i++) { printf("%d", a[i]); if (i < n - 1) { printf(" "); } } printf("\n"); } int main() { // 输入数组长度和要删除的元素下标 int n, i; scanf("%d", &n); int A[n]; // 输入数组A的元素 for (int i = 0; i < n; i++) { scanf("%d", &A[i]); } scanf("%d", &i); // 调用del函数删除数组A中下标为i的元素 del(A, n, i); // 打印删除元素后的数组 PrintArr(A, n - 1); // 输出删除元素后的数组,跳过最后一个元素 return 0; }
1117: 查找数组元素
#include<stdio.h>//函数find用于查找数组a中元素x的位置int find(int a[],int *n,int x){int t=-1;//遍历数组a,查找元素x的位置for(int i=0;i<*n;i++){if(x==a[i]){t=i;return t;break;}}return t;}//函数del用于删除数组a中元素x的位置void del(int a[],int *n,int x){//从x位置开始,将数组a中后面的元素向前移动一位for(int j=x-1;j<*n-1;j++){a[j]=a[j+1];}(*n)--;}//函数PrintArr用于打印数组avoid PrintArr(int a[],int n){//遍历数组a,打印每一个元素for(int i=0;i<n;i++){printf("%4d",a[i]);}printf("\n");}int main(){int t;int n,x;//输入数组a的长度scanf("%d",&n);//定义一个长度为n的数组aint a[n];//输入数组a的每一个元素for(int i=0;i<n;i++){scanf("%d",&a[i]);}//输入要查找的元素xscanf("%d",&x);//调用函数find,查找元素x的位置t=find(a,&n,x);//如果元素x不存在,则输出Not Foundif(t==-1){printf("Not Found");}//如果元素x存在,则调用函数del,删除元素x的位置,并打印新的数组aelse{del(a,&n,x);PrintArr(a,n);}return 0;}#include<stdio.h> //函数find用于查找数组a中元素x的位置 int find(int a[],int *n,int x) { int t=-1; //遍历数组a,查找元素x的位置 for(int i=0;i<*n;i++) { if(x==a[i]) { t=i; return t; break; } } return t; } //函数del用于删除数组a中元素x的位置 void del(int a[],int *n,int x) { //从x位置开始,将数组a中后面的元素向前移动一位 for(int j=x-1;j<*n-1;j++) { a[j]=a[j+1]; } (*n)--; } //函数PrintArr用于打印数组a void PrintArr(int a[],int n) { //遍历数组a,打印每一个元素 for(int i=0;i<n;i++) { printf("%4d",a[i]); } printf("\n"); } int main() { int t; int n,x; //输入数组a的长度 scanf("%d",&n); //定义一个长度为n的数组a int a[n]; //输入数组a的每一个元素 for(int i=0;i<n;i++) { scanf("%d",&a[i]); } //输入要查找的元素x scanf("%d",&x); //调用函数find,查找元素x的位置 t=find(a,&n,x); //如果元素x不存在,则输出Not Found if(t==-1) { printf("Not Found"); } //如果元素x存在,则调用函数del,删除元素x的位置,并打印新的数组a else { del(a,&n,x); PrintArr(a,n); } return 0; }#include<stdio.h> //函数find用于查找数组a中元素x的位置 int find(int a[],int *n,int x) { int t=-1; //遍历数组a,查找元素x的位置 for(int i=0;i<*n;i++) { if(x==a[i]) { t=i; return t; break; } } return t; } //函数del用于删除数组a中元素x的位置 void del(int a[],int *n,int x) { //从x位置开始,将数组a中后面的元素向前移动一位 for(int j=x-1;j<*n-1;j++) { a[j]=a[j+1]; } (*n)--; } //函数PrintArr用于打印数组a void PrintArr(int a[],int n) { //遍历数组a,打印每一个元素 for(int i=0;i<n;i++) { printf("%4d",a[i]); } printf("\n"); } int main() { int t; int n,x; //输入数组a的长度 scanf("%d",&n); //定义一个长度为n的数组a int a[n]; //输入数组a的每一个元素 for(int i=0;i<n;i++) { scanf("%d",&a[i]); } //输入要查找的元素x scanf("%d",&x); //调用函数find,查找元素x的位置 t=find(a,&n,x); //如果元素x不存在,则输出Not Found if(t==-1) { printf("Not Found"); } //如果元素x存在,则调用函数del,删除元素x的位置,并打印新的数组a else { del(a,&n,x); PrintArr(a,n); } return 0; }
1118: 数列有序
#include<stdio.h>void insert(int a[],int n,int num){//将num插入到a数组中a[n]=num;n++;//冒泡排序for(int i=0;i<n-1;i++){for(int j=0;j<n-1-i;j++){if(a[j]>a[j+1]){int t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}void PrintArr(int a[],int n){//打印数组for(int i=0;i<n+1;i++){printf("%d",a[i]);if(i<n){printf(" ");}}}int main(){//输入数组大小int n;scanf("%d",&n);//初始化数组int a[n];//输入数组元素for(int i=0;i<n;i++){scanf("%d",&a[i]);}//输入插入的元素int num;scanf("%d",&num);//插入元素insert(a,n,num);//打印数组PrintArr(a,n);return 0;}#include<stdio.h> void insert(int a[],int n,int num) { //将num插入到a数组中 a[n]=num; n++; //冒泡排序 for(int i=0;i<n-1;i++) { for(int j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { int t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } void PrintArr(int a[],int n) { //打印数组 for(int i=0;i<n+1;i++) { printf("%d",a[i]); if(i<n) { printf(" "); } } } int main() { //输入数组大小 int n; scanf("%d",&n); //初始化数组 int a[n]; //输入数组元素 for(int i=0;i<n;i++) { scanf("%d",&a[i]); } //输入插入的元素 int num; scanf("%d",&num); //插入元素 insert(a,n,num); //打印数组 PrintArr(a,n); return 0; }#include<stdio.h> void insert(int a[],int n,int num) { //将num插入到a数组中 a[n]=num; n++; //冒泡排序 for(int i=0;i<n-1;i++) { for(int j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { int t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } void PrintArr(int a[],int n) { //打印数组 for(int i=0;i<n+1;i++) { printf("%d",a[i]); if(i<n) { printf(" "); } } } int main() { //输入数组大小 int n; scanf("%d",&n); //初始化数组 int a[n]; //输入数组元素 for(int i=0;i<n;i++) { scanf("%d",&a[i]); } //输入插入的元素 int num; scanf("%d",&num); //插入元素 insert(a,n,num); //打印数组 PrintArr(a,n); return 0; }
1119: 一维数组排序
#include<stdio.h>void sort(int a[],int n){//冒泡排序for(int i=0;i<n-1;i++){for(int j=0;j<n-1-i;j++){if(a[j]>a[j+1]){int t=a[j];a[j]=a[j+1];a[j+1]=t;}}}}void PrintArr(int a[],int n){//输出数组for(int i=0;i<n;i++){printf("%d",a[i]);if(i<n-1){printf(" ");}}}int main(){//输入数组长度int n;scanf("%d",&n);int a[n];//输入数组元素for(int i=0;i<n;i++){scanf("%d",&a[i]);}//调用冒泡排序函数sort(a,n);//输出排序后的数组PrintArr(a,n);return 0;}#include<stdio.h> void sort(int a[],int n) { //冒泡排序 for(int i=0;i<n-1;i++) { for(int j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { int t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } void PrintArr(int a[],int n) { //输出数组 for(int i=0;i<n;i++) { printf("%d",a[i]); if(i<n-1) { printf(" "); } } } int main() { //输入数组长度 int n; scanf("%d",&n); int a[n]; //输入数组元素 for(int i=0;i<n;i++) { scanf("%d",&a[i]); } //调用冒泡排序函数 sort(a,n); //输出排序后的数组 PrintArr(a,n); return 0; }#include<stdio.h> void sort(int a[],int n) { //冒泡排序 for(int i=0;i<n-1;i++) { for(int j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { int t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } void PrintArr(int a[],int n) { //输出数组 for(int i=0;i<n;i++) { printf("%d",a[i]); if(i<n-1) { printf(" "); } } } int main() { //输入数组长度 int n; scanf("%d",&n); int a[n]; //输入数组元素 for(int i=0;i<n;i++) { scanf("%d",&a[i]); } //调用冒泡排序函数 sort(a,n); //输出排序后的数组 PrintArr(a,n); return 0; }
1120: 最值交换
#include<stdio.h>int MinIndex(int a[],int n){int min = a[0],down=0; //最小值和下标初始为第一个for (int i = 0; i < n;i++){if(a[i]<min) //如果遍历出来的数比最小值小{min = a[i]; //替换最小值down = i; //记录下标}}return down;}int MaxIndex(int a[],int n){int max = a[0], down = n - 1; //最大值和下标初始为最后一个for (int i = 0; i < n; i++){if (a[i] > max) // 如果遍历出来的数比最大值大{max = a[i]; //替换最大值down = i; //记录下标}}return down;}void PrintArr(int a[],int n) //打印函数{for (int i = 0; i < n ;i++){printf("%d", a[i]);if(i<n-1){printf(" ");}}}int main(){int n,x,y,t;int a[15];scanf("%d", &n);for (int i = 0; i < n;i++){scanf("%d", &a[i]);}x=MinIndex(a, n); //最小值和第一个交换t = a[0];a[0] = a[x];a[x] = t;y=MaxIndex(a, n); //最大值与最后一个交换t = a[n - 1];a[n - 1] = a[y];a[y] = t;PrintArr(a, n);return 0;}#include<stdio.h> int MinIndex(int a[],int n) { int min = a[0],down=0; //最小值和下标初始为第一个 for (int i = 0; i < n;i++) { if(a[i]<min) //如果遍历出来的数比最小值小 { min = a[i]; //替换最小值 down = i; //记录下标 } } return down; } int MaxIndex(int a[],int n) { int max = a[0], down = n - 1; //最大值和下标初始为最后一个 for (int i = 0; i < n; i++) { if (a[i] > max) // 如果遍历出来的数比最大值大 { max = a[i]; //替换最大值 down = i; //记录下标 } } return down; } void PrintArr(int a[],int n) //打印函数 { for (int i = 0; i < n ;i++) { printf("%d", a[i]); if(i<n-1) { printf(" "); } } } int main() { int n,x,y,t; int a[15]; scanf("%d", &n); for (int i = 0; i < n;i++) { scanf("%d", &a[i]); } x=MinIndex(a, n); //最小值和第一个交换 t = a[0]; a[0] = a[x]; a[x] = t; y=MaxIndex(a, n); //最大值与最后一个交换 t = a[n - 1]; a[n - 1] = a[y]; a[y] = t; PrintArr(a, n); return 0; }#include<stdio.h> int MinIndex(int a[],int n) { int min = a[0],down=0; //最小值和下标初始为第一个 for (int i = 0; i < n;i++) { if(a[i]<min) //如果遍历出来的数比最小值小 { min = a[i]; //替换最小值 down = i; //记录下标 } } return down; } int MaxIndex(int a[],int n) { int max = a[0], down = n - 1; //最大值和下标初始为最后一个 for (int i = 0; i < n; i++) { if (a[i] > max) // 如果遍历出来的数比最大值大 { max = a[i]; //替换最大值 down = i; //记录下标 } } return down; } void PrintArr(int a[],int n) //打印函数 { for (int i = 0; i < n ;i++) { printf("%d", a[i]); if(i<n-1) { printf(" "); } } } int main() { int n,x,y,t; int a[15]; scanf("%d", &n); for (int i = 0; i < n;i++) { scanf("%d", &a[i]); } x=MinIndex(a, n); //最小值和第一个交换 t = a[0]; a[0] = a[x]; a[x] = t; y=MaxIndex(a, n); //最大值与最后一个交换 t = a[n - 1]; a[n - 1] = a[y]; a[y] = t; PrintArr(a, n); return 0; }
1125: 上三角矩阵的判断
#include <stdio.h>// 检查矩阵是否为上三角矩阵int IsUpperTriMatrix(int a[][10], int n){// 遍历矩阵的每一行for (int i = 1; i < n; i++){// 遍历当前行的每一列for (int j = 0; j < i; j++){// 如果当前列的元素不为0,则说明矩阵不是上三角矩阵if (a[i][j] != 0){return 0;}}}// 如果遍历完矩阵的每一行,说明矩阵是上三角矩阵return 1;}int main(){// 读取矩阵的行数int n, i, j;scanf("%d", &n);// 初始化一个n*n的矩阵int a[10][10];// 读取矩阵的每一个元素for (i = 0; i < n; i++){for (j = 0; j < n; j++){scanf("%d", &a[i][j]);}}// 调用函数检查矩阵是否为上三角矩阵if (IsUpperTriMatrix(a, n)){printf("YES\n");}else{printf("NO\n");}return 0;}#include <stdio.h> // 检查矩阵是否为上三角矩阵 int IsUpperTriMatrix(int a[][10], int n) { // 遍历矩阵的每一行 for (int i = 1; i < n; i++) { // 遍历当前行的每一列 for (int j = 0; j < i; j++) { // 如果当前列的元素不为0,则说明矩阵不是上三角矩阵 if (a[i][j] != 0) { return 0; } } } // 如果遍历完矩阵的每一行,说明矩阵是上三角矩阵 return 1; } int main() { // 读取矩阵的行数 int n, i, j; scanf("%d", &n); // 初始化一个n*n的矩阵 int a[10][10]; // 读取矩阵的每一个元素 for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { scanf("%d", &a[i][j]); } } // 调用函数检查矩阵是否为上三角矩阵 if (IsUpperTriMatrix(a, n)) { printf("YES\n"); } else { printf("NO\n"); } return 0; }#include <stdio.h> // 检查矩阵是否为上三角矩阵 int IsUpperTriMatrix(int a[][10], int n) { // 遍历矩阵的每一行 for (int i = 1; i < n; i++) { // 遍历当前行的每一列 for (int j = 0; j < i; j++) { // 如果当前列的元素不为0,则说明矩阵不是上三角矩阵 if (a[i][j] != 0) { return 0; } } } // 如果遍历完矩阵的每一行,说明矩阵是上三角矩阵 return 1; } int main() { // 读取矩阵的行数 int n, i, j; scanf("%d", &n); // 初始化一个n*n的矩阵 int a[10][10]; // 读取矩阵的每一个元素 for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { scanf("%d", &a[i][j]); } } // 调用函数检查矩阵是否为上三角矩阵 if (IsUpperTriMatrix(a, n)) { printf("YES\n"); } else { printf("NO\n"); } return 0; }
1126: 布尔矩阵的奇偶性
#include <stdio.h>int boolf(int a[][100], int n){// 定义两个标志变量,用于记录异常的行和列int flag1 = 0, flag2 = 0, x, y;// 遍历每一行,检查每一行的和是否为奇数for (int i = 0; i < n ; i++){int sum = 0;// 计算每一行的和for (int j = 0; j < n ; j++){sum += a[i][j];}// 如果和为奇数,则记录异常的行if (sum % 2 != 0){flag1++;x = i;}}// 遍历每一列,检查每一列的和是否为奇数for (int i = 0; i < n ; i++){int sum = 0;// 计算每一列的和for (int j = 0; j < n ; j++){sum += a[j][i];}// 如果和为奇数,则记录异常的列if (sum % 2 != 0){flag2++;y = i;}}// 如果异常的行和列都为0,则说明没有异常,输出OKif (flag1 == 0 && flag2 == 0){printf("OK");}// 如果异常的行和列只有一个,则说明只修改一个位置,输出修改位置的行列坐标else if (flag1 == 1 && flag2 == 1){printf("Change bit(%d,%d)", x, y);}// 如果异常的行和列有两个,则说明整张图片异常,输出corruptelseprintf("Corrupt");}int main(){// 定义一个变量,用于存储图片的行数int n;// 定义一个二维数组,用于存储图片的像素值int a[100][100];// 读取图片的行数scanf("%d", &n);// 读取图片的像素值for (int i = 0; i < n ; i++){for (int j = 0; j < n ; j++){scanf("%d", &a[i][j]);}}// 调用boolf函数,检查图片是否异常boolf(a, n);return 0;}#include <stdio.h> int boolf(int a[][100], int n) { // 定义两个标志变量,用于记录异常的行和列 int flag1 = 0, flag2 = 0, x, y; // 遍历每一行,检查每一行的和是否为奇数 for (int i = 0; i < n ; i++) { int sum = 0; // 计算每一行的和 for (int j = 0; j < n ; j++) { sum += a[i][j]; } // 如果和为奇数,则记录异常的行 if (sum % 2 != 0) { flag1++; x = i; } } // 遍历每一列,检查每一列的和是否为奇数 for (int i = 0; i < n ; i++) { int sum = 0; // 计算每一列的和 for (int j = 0; j < n ; j++) { sum += a[j][i]; } // 如果和为奇数,则记录异常的列 if (sum % 2 != 0) { flag2++; y = i; } } // 如果异常的行和列都为0,则说明没有异常,输出OK if (flag1 == 0 && flag2 == 0) { printf("OK"); } // 如果异常的行和列只有一个,则说明只修改一个位置,输出修改位置的行列坐标 else if (flag1 == 1 && flag2 == 1) { printf("Change bit(%d,%d)", x, y); } // 如果异常的行和列有两个,则说明整张图片异常,输出corrupt else printf("Corrupt"); } int main() { // 定义一个变量,用于存储图片的行数 int n; // 定义一个二维数组,用于存储图片的像素值 int a[100][100]; // 读取图片的行数 scanf("%d", &n); // 读取图片的像素值 for (int i = 0; i < n ; i++) { for (int j = 0; j < n ; j++) { scanf("%d", &a[i][j]); } } // 调用boolf函数,检查图片是否异常 boolf(a, n); return 0; }#include <stdio.h> int boolf(int a[][100], int n) { // 定义两个标志变量,用于记录异常的行和列 int flag1 = 0, flag2 = 0, x, y; // 遍历每一行,检查每一行的和是否为奇数 for (int i = 0; i < n ; i++) { int sum = 0; // 计算每一行的和 for (int j = 0; j < n ; j++) { sum += a[i][j]; } // 如果和为奇数,则记录异常的行 if (sum % 2 != 0) { flag1++; x = i; } } // 遍历每一列,检查每一列的和是否为奇数 for (int i = 0; i < n ; i++) { int sum = 0; // 计算每一列的和 for (int j = 0; j < n ; j++) { sum += a[j][i]; } // 如果和为奇数,则记录异常的列 if (sum % 2 != 0) { flag2++; y = i; } } // 如果异常的行和列都为0,则说明没有异常,输出OK if (flag1 == 0 && flag2 == 0) { printf("OK"); } // 如果异常的行和列只有一个,则说明只修改一个位置,输出修改位置的行列坐标 else if (flag1 == 1 && flag2 == 1) { printf("Change bit(%d,%d)", x, y); } // 如果异常的行和列有两个,则说明整张图片异常,输出corrupt else printf("Corrupt"); } int main() { // 定义一个变量,用于存储图片的行数 int n; // 定义一个二维数组,用于存储图片的像素值 int a[100][100]; // 读取图片的行数 scanf("%d", &n); // 读取图片的像素值 for (int i = 0; i < n ; i++) { for (int j = 0; j < n ; j++) { scanf("%d", &a[i][j]); } } // 调用boolf函数,检查图片是否异常 boolf(a, n); return 0; }
1127: 矩阵乘积
#include<stdio.h>int main(){//定义变量int m, p, n;int arr[15][15];int brr[15][15];int crr[15][15];//输入变量scanf("%d %d %d", &m, &p, &n);//输入arrfor (int i = 0; i < m;i++){for (int j = 0; j < p;j++){scanf("%d", &arr[i][j]);}}//输入brrfor (int i = 0; i < p;i++){for (int j = 0; j < n;j++){scanf("%d", &brr[i][j]);}}//计算crrfor (int i = 0; i < m; i++){for (int j = 0; j < n; j++){crr[i][j] = 0;for (int k = 0; k < p; k++){crr[i][j] += arr[i][k] * brr[k][j];}}}//输出crrfor (int i = 0; i < m; i++){printf("%d", crr[i][0]);for (int j = 1; j < n; j++){printf(" %d", crr[i][j]);}printf("\n");}return 0;}#include<stdio.h> int main() { //定义变量 int m, p, n; int arr[15][15]; int brr[15][15]; int crr[15][15]; //输入变量 scanf("%d %d %d", &m, &p, &n); //输入arr for (int i = 0; i < m;i++) { for (int j = 0; j < p;j++) { scanf("%d", &arr[i][j]); } } //输入brr for (int i = 0; i < p;i++) { for (int j = 0; j < n;j++) { scanf("%d", &brr[i][j]); } } //计算crr for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { crr[i][j] = 0; for (int k = 0; k < p; k++) { crr[i][j] += arr[i][k] * brr[k][j]; } } } //输出crr for (int i = 0; i < m; i++) { printf("%d", crr[i][0]); for (int j = 1; j < n; j++) { printf(" %d", crr[i][j]); } printf("\n"); } return 0; }#include<stdio.h> int main() { //定义变量 int m, p, n; int arr[15][15]; int brr[15][15]; int crr[15][15]; //输入变量 scanf("%d %d %d", &m, &p, &n); //输入arr for (int i = 0; i < m;i++) { for (int j = 0; j < p;j++) { scanf("%d", &arr[i][j]); } } //输入brr for (int i = 0; i < p;i++) { for (int j = 0; j < n;j++) { scanf("%d", &brr[i][j]); } } //计算crr for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { crr[i][j] = 0; for (int k = 0; k < p; k++) { crr[i][j] += arr[i][k] * brr[k][j]; } } } //输出crr for (int i = 0; i < m; i++) { printf("%d", crr[i][0]); for (int j = 1; j < n; j++) { printf(" %d", crr[i][j]); } printf("\n"); } return 0; }
1128: 课程平均分
#include<stdio.h>int main(){//定义两个整型变量m和nint m, n;//定义一个二维数组a,大小为m*ndouble a[1005][15];//输入m和nscanf("%d %d", &m, &n);//循环m次,每次循环输入a[i][j]for (int i = 0; i < m;i++){for (int j = 0; j < n;j++){scanf("%lf", &a[i][j]);}}//循环n次,每次循环计算每一列的平均值for (int i = 0; i < n;i++){double sum = 0;//循环m次,每次循环累加a[j][i]for (int j = 0; j < m;j++){sum += a[j][i];}//计算每一列的平均值double avg = sum / m;//输出平均值,保留两位小数printf("%.2lf", avg);//如果不是最后一行,输出空格if(i!=n-1){printf(" ");}}return 0;}#include<stdio.h> int main() { //定义两个整型变量m和n int m, n; //定义一个二维数组a,大小为m*n double a[1005][15]; //输入m和n scanf("%d %d", &m, &n); //循环m次,每次循环输入a[i][j] for (int i = 0; i < m;i++) { for (int j = 0; j < n;j++) { scanf("%lf", &a[i][j]); } } //循环n次,每次循环计算每一列的平均值 for (int i = 0; i < n;i++) { double sum = 0; //循环m次,每次循环累加a[j][i] for (int j = 0; j < m;j++) { sum += a[j][i]; } //计算每一列的平均值 double avg = sum / m; //输出平均值,保留两位小数 printf("%.2lf", avg); //如果不是最后一行,输出空格 if(i!=n-1) { printf(" "); } } return 0; }#include<stdio.h> int main() { //定义两个整型变量m和n int m, n; //定义一个二维数组a,大小为m*n double a[1005][15]; //输入m和n scanf("%d %d", &m, &n); //循环m次,每次循环输入a[i][j] for (int i = 0; i < m;i++) { for (int j = 0; j < n;j++) { scanf("%lf", &a[i][j]); } } //循环n次,每次循环计算每一列的平均值 for (int i = 0; i < n;i++) { double sum = 0; //循环m次,每次循环累加a[j][i] for (int j = 0; j < m;j++) { sum += a[j][i]; } //计算每一列的平均值 double avg = sum / m; //输出平均值,保留两位小数 printf("%.2lf", avg); //如果不是最后一行,输出空格 if(i!=n-1) { printf(" "); } } return 0; }
1129: 第几天
//纯暴力手法#include <stdio.h>int main(){// 定义变量int year, month, day, num = 0;// 输入scanf("%d-%d-%d", &year, &month, &day);// 判断是否为闰年if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){// 根据月份判断switch (month){case 1:printf("%d", day);break;case 2:printf("%d", 31 + day);break;case 3:printf("%d", 31 + 29 + day);break;case 4:printf("%d", 31 * 2 + 29 + day);break;case 5:printf("%d", 31 * 2 + 29 + 30 + day);break;case 6:printf("%d", 31 * 3 + 29 + 30 + day);break;case 7:printf("%d", 31 * 3 + 29 + 30 * 2 + day);break;case 8:printf("%d", 31 * 4 + 29 + 30 * 2 + day);break;case 9:printf("%d", 31 * 5 + 29 + 30 * 2 + day);break;case 10:printf("%d", 31 * 5 + 29 + 30 * 3 + day);break;case 11:printf("%d", 31 * 6 + 29 + 30 * 3 + day);break;case 12:printf("%d", 31 * 6 + 29 + 30 * 4 + day);break;}}// 不是闰年else{// 根据月份判断switch (month){case 1:printf("%d", day);break;case 2:printf("%d", 31 + day);break;case 3:printf("%d", 31 + 28 + day);break;case 4:printf("%d", 31 * 2 + 28 + day);break;case 5:printf("%d", 31 * 2 + 28 + 30 + day);break;case 6:printf("%d", 31 * 3 + 28 + 30 + day);break;case 7:printf("%d", 31 * 3 + 28 + 30 * 2 + day);break;case 8:printf("%d", 31 * 4 + 28 + 30 * 2 + day);break;case 9:printf("%d", 31 * 5 + 28 + 30 * 2 + day);break;case 10:printf("%d", 31 * 5 + 28 + 30 * 3 + day);break;case 11:printf("%d", 31 * 6 + 28 + 30 * 3 + day);break;case 12:printf("%d", 31 * 6 + 28 + 30 * 4 + day);break;}}return 0;}//纯暴力手法 #include <stdio.h> int main() { // 定义变量 int year, month, day, num = 0; // 输入 scanf("%d-%d-%d", &year, &month, &day); // 判断是否为闰年 if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { // 根据月份判断 switch (month) { case 1: printf("%d", day); break; case 2: printf("%d", 31 + day); break; case 3: printf("%d", 31 + 29 + day); break; case 4: printf("%d", 31 * 2 + 29 + day); break; case 5: printf("%d", 31 * 2 + 29 + 30 + day); break; case 6: printf("%d", 31 * 3 + 29 + 30 + day); break; case 7: printf("%d", 31 * 3 + 29 + 30 * 2 + day); break; case 8: printf("%d", 31 * 4 + 29 + 30 * 2 + day); break; case 9: printf("%d", 31 * 5 + 29 + 30 * 2 + day); break; case 10: printf("%d", 31 * 5 + 29 + 30 * 3 + day); break; case 11: printf("%d", 31 * 6 + 29 + 30 * 3 + day); break; case 12: printf("%d", 31 * 6 + 29 + 30 * 4 + day); break; } } // 不是闰年 else { // 根据月份判断 switch (month) { case 1: printf("%d", day); break; case 2: printf("%d", 31 + day); break; case 3: printf("%d", 31 + 28 + day); break; case 4: printf("%d", 31 * 2 + 28 + day); break; case 5: printf("%d", 31 * 2 + 28 + 30 + day); break; case 6: printf("%d", 31 * 3 + 28 + 30 + day); break; case 7: printf("%d", 31 * 3 + 28 + 30 * 2 + day); break; case 8: printf("%d", 31 * 4 + 28 + 30 * 2 + day); break; case 9: printf("%d", 31 * 5 + 28 + 30 * 2 + day); break; case 10: printf("%d", 31 * 5 + 28 + 30 * 3 + day); break; case 11: printf("%d", 31 * 6 + 28 + 30 * 3 + day); break; case 12: printf("%d", 31 * 6 + 28 + 30 * 4 + day); break; } } return 0; }//纯暴力手法 #include <stdio.h> int main() { // 定义变量 int year, month, day, num = 0; // 输入 scanf("%d-%d-%d", &year, &month, &day); // 判断是否为闰年 if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { // 根据月份判断 switch (month) { case 1: printf("%d", day); break; case 2: printf("%d", 31 + day); break; case 3: printf("%d", 31 + 29 + day); break; case 4: printf("%d", 31 * 2 + 29 + day); break; case 5: printf("%d", 31 * 2 + 29 + 30 + day); break; case 6: printf("%d", 31 * 3 + 29 + 30 + day); break; case 7: printf("%d", 31 * 3 + 29 + 30 * 2 + day); break; case 8: printf("%d", 31 * 4 + 29 + 30 * 2 + day); break; case 9: printf("%d", 31 * 5 + 29 + 30 * 2 + day); break; case 10: printf("%d", 31 * 5 + 29 + 30 * 3 + day); break; case 11: printf("%d", 31 * 6 + 29 + 30 * 3 + day); break; case 12: printf("%d", 31 * 6 + 29 + 30 * 4 + day); break; } } // 不是闰年 else { // 根据月份判断 switch (month) { case 1: printf("%d", day); break; case 2: printf("%d", 31 + day); break; case 3: printf("%d", 31 + 28 + day); break; case 4: printf("%d", 31 * 2 + 28 + day); break; case 5: printf("%d", 31 * 2 + 28 + 30 + day); break; case 6: printf("%d", 31 * 3 + 28 + 30 + day); break; case 7: printf("%d", 31 * 3 + 28 + 30 * 2 + day); break; case 8: printf("%d", 31 * 4 + 28 + 30 * 2 + day); break; case 9: printf("%d", 31 * 5 + 28 + 30 * 2 + day); break; case 10: printf("%d", 31 * 5 + 28 + 30 * 3 + day); break; case 11: printf("%d", 31 * 6 + 28 + 30 * 3 + day); break; case 12: printf("%d", 31 * 6 + 28 + 30 * 4 + day); break; } } return 0; }
1130: 杨辉三角
#include<stdio.h>int main(){//定义一个变量nint n;//定义一个二维数组a,初始值为1int a[35][35]={1};//输入nscanf("%d",&n);//循环n次for (int i = 0; i < n;i++){//循环i次for (int j = 0; j < i + 1;j++){//如果i等于0或者j等于0,则a[i][0]等于1if(i==0||j==0){a[i][0] = 1;}//如果i大于0且j不等于0,则a[i][j]等于a[i - 1][j - 1] + a[i - 1][j]if(i>0&&j!=0){a[i][j] = a[i - 1][j - 1] + a[i - 1][j];}//输出a[i][j]printf("%d", a[i][j]);//如果j小于n-1,则输出空格if(j<n-1)printf(" ");//如果j等于i,则换行if(j==i){printf("\n");}}}return 0;}#include<stdio.h> int main() { //定义一个变量n int n; //定义一个二维数组a,初始值为1 int a[35][35]={1}; //输入n scanf("%d",&n); //循环n次 for (int i = 0; i < n;i++) { //循环i次 for (int j = 0; j < i + 1;j++) { //如果i等于0或者j等于0,则a[i][0]等于1 if(i==0||j==0) { a[i][0] = 1; } //如果i大于0且j不等于0,则a[i][j]等于a[i - 1][j - 1] + a[i - 1][j] if(i>0&&j!=0) { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } //输出a[i][j] printf("%d", a[i][j]); //如果j小于n-1,则输出空格 if(j<n-1) printf(" "); //如果j等于i,则换行 if(j==i) { printf("\n"); } } } return 0; }#include<stdio.h> int main() { //定义一个变量n int n; //定义一个二维数组a,初始值为1 int a[35][35]={1}; //输入n scanf("%d",&n); //循环n次 for (int i = 0; i < n;i++) { //循环i次 for (int j = 0; j < i + 1;j++) { //如果i等于0或者j等于0,则a[i][0]等于1 if(i==0||j==0) { a[i][0] = 1; } //如果i大于0且j不等于0,则a[i][j]等于a[i - 1][j - 1] + a[i - 1][j] if(i>0&&j!=0) { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } //输出a[i][j] printf("%d", a[i][j]); //如果j小于n-1,则输出空格 if(j<n-1) printf(" "); //如果j等于i,则换行 if(j==i) { printf("\n"); } } } return 0; }
1131: 最常用字符
#include <stdio.h>int main(){// 定义一个字符数组char a[105];// 定义一个整型数组,用于存储每个字母出现的次数int s[27] = {0}, i = 0, m = 0, j;// 读取字符串,并将其中的大写字母转换为小写字母while ((a[i] = getchar()) != '\n'){if (a[i] >= 'A' && a[i] <= 'Z')a[i] = a[i] + 32;// 计算每个字母出现的次数j = a[i] - 'a';s[j] += 1;i++;}// 遍历数组,找到出现次数最多的字母for (i = 0; i < 26; i++){if (s[m] < s[i]){m = i;}}// 输出出现次数最多的字母printf("%c", m + 'a');return 0;}#include <stdio.h> int main() { // 定义一个字符数组 char a[105]; // 定义一个整型数组,用于存储每个字母出现的次数 int s[27] = {0}, i = 0, m = 0, j; // 读取字符串,并将其中的大写字母转换为小写字母 while ((a[i] = getchar()) != '\n') { if (a[i] >= 'A' && a[i] <= 'Z') a[i] = a[i] + 32; // 计算每个字母出现的次数 j = a[i] - 'a'; s[j] += 1; i++; } // 遍历数组,找到出现次数最多的字母 for (i = 0; i < 26; i++) { if (s[m] < s[i]) { m = i; } } // 输出出现次数最多的字母 printf("%c", m + 'a'); return 0; }#include <stdio.h> int main() { // 定义一个字符数组 char a[105]; // 定义一个整型数组,用于存储每个字母出现的次数 int s[27] = {0}, i = 0, m = 0, j; // 读取字符串,并将其中的大写字母转换为小写字母 while ((a[i] = getchar()) != '\n') { if (a[i] >= 'A' && a[i] <= 'Z') a[i] = a[i] + 32; // 计算每个字母出现的次数 j = a[i] - 'a'; s[j] += 1; i++; } // 遍历数组,找到出现次数最多的字母 for (i = 0; i < 26; i++) { if (s[m] < s[i]) { m = i; } } // 输出出现次数最多的字母 printf("%c", m + 'a'); return 0; }
1132: 数字字符统计
#include <stdio.h>int main(){// 定义变量n和tint n, t;// 定义变量chchar ch;// 输入变量nscanf("%d", &n);// 跳过换行符getchar();// 循环n次for (int i = 0; i < n; i++){// 初始化t为0t = 0;// 循环读取字符,直到遇到换行符while ((ch= getchar()) != '\n'){// 如果字符大于等于0且小于等于9,t加1if (ch>= '0' && ch <= '9'){t++;}}// 输出tprintf("%d\n", t);}return 0;}#include <stdio.h> int main() { // 定义变量n和t int n, t; // 定义变量ch char ch; // 输入变量n scanf("%d", &n); // 跳过换行符 getchar(); // 循环n次 for (int i = 0; i < n; i++) { // 初始化t为0 t = 0; // 循环读取字符,直到遇到换行符 while ((ch= getchar()) != '\n') { // 如果字符大于等于0且小于等于9,t加1 if (ch>= '0' && ch <= '9') { t++; } } // 输出t printf("%d\n", t); } return 0; }#include <stdio.h> int main() { // 定义变量n和t int n, t; // 定义变量ch char ch; // 输入变量n scanf("%d", &n); // 跳过换行符 getchar(); // 循环n次 for (int i = 0; i < n; i++) { // 初始化t为0 t = 0; // 循环读取字符,直到遇到换行符 while ((ch= getchar()) != '\n') { // 如果字符大于等于0且小于等于9,t加1 if (ch>= '0' && ch <= '9') { t++; } } // 输出t printf("%d\n", t); } return 0; }
1133: 单词个数统计
#include <stdio.h>#include <string.h>#include <ctype.h>int main () {// 定义变量int count = 0, len;char ch[1001];// 读取一行字符串fgets(ch, sizeof(ch), stdin);// 计算字符串长度len = strlen(ch);// 如果字符串最后是换行符,则去掉换行符if (ch[len-1] == '\n') {ch[len-1] = '\0'; // 移除末尾的换行符len--;}// 计算空格数量for (int i = 0; i < len; i++) {// 判断字符串中每个字符的前一个字符是否是字母或数字,且当前字符是否是空格if (isalnum(ch[i-1]) && ch[i] == ' '){count++;}}// 判断字符串最后一个字符是否是字母或数字if (isalnum(ch[len-1])){count++;}// 输出空格数量printf ("%d",count);return 0;}#include <stdio.h> #include <string.h> #include <ctype.h> int main () { // 定义变量 int count = 0, len; char ch[1001]; // 读取一行字符串 fgets(ch, sizeof(ch), stdin); // 计算字符串长度 len = strlen(ch); // 如果字符串最后是换行符,则去掉换行符 if (ch[len-1] == '\n') { ch[len-1] = '\0'; // 移除末尾的换行符 len--; } // 计算空格数量 for (int i = 0; i < len; i++) { // 判断字符串中每个字符的前一个字符是否是字母或数字,且当前字符是否是空格 if (isalnum(ch[i-1]) && ch[i] == ' '){ count++; } } // 判断字符串最后一个字符是否是字母或数字 if (isalnum(ch[len-1])){ count++; } // 输出空格数量 printf ("%d",count); return 0; }#include <stdio.h> #include <string.h> #include <ctype.h> int main () { // 定义变量 int count = 0, len; char ch[1001]; // 读取一行字符串 fgets(ch, sizeof(ch), stdin); // 计算字符串长度 len = strlen(ch); // 如果字符串最后是换行符,则去掉换行符 if (ch[len-1] == '\n') { ch[len-1] = '\0'; // 移除末尾的换行符 len--; } // 计算空格数量 for (int i = 0; i < len; i++) { // 判断字符串中每个字符的前一个字符是否是字母或数字,且当前字符是否是空格 if (isalnum(ch[i-1]) && ch[i] == ' '){ count++; } } // 判断字符串最后一个字符是否是字母或数字 if (isalnum(ch[len-1])){ count++; } // 输出空格数量 printf ("%d",count); return 0; }
1134:字符串转换
#include <stdio.h>int main(){char arr[101];int sum=0;gets(arr);int i=0;for(i=0;arr[i]!='\0';i++){if(arr[i]>='0'&&arr[i]<='9'){sum=sum*10+arr[i]-'0';}}sum=sum*2;printf("%d",sum);}#include <stdio.h> int main() { char arr[101]; int sum=0; gets(arr); int i=0; for(i=0;arr[i]!='\0';i++) { if(arr[i]>='0'&&arr[i]<='9'){ sum=sum*10+arr[i]-'0'; } } sum=sum*2; printf("%d",sum); }#include <stdio.h> int main() { char arr[101]; int sum=0; gets(arr); int i=0; for(i=0;arr[i]!='\0';i++) { if(arr[i]>='0'&&arr[i]<='9'){ sum=sum*10+arr[i]-'0'; } } sum=sum*2; printf("%d",sum); }
1135:算菜价
#include <stdio.h>#include <stdlib.h>int main(){double w,p,sum=0;while(~scanf("%*s%lf%lf",&w,&p))//与!=EOF等价{sum=sum+w*p;}printf("%.1f\n",sum);return 0;}#include <stdio.h> #include <stdlib.h> int main() { double w,p,sum=0; while(~scanf("%*s%lf%lf",&w,&p)) //与!=EOF等价 { sum=sum+w*p; } printf("%.1f\n",sum); return 0; }#include <stdio.h> #include <stdlib.h> int main() { double w,p,sum=0; while(~scanf("%*s%lf%lf",&w,&p)) //与!=EOF等价 { sum=sum+w*p; } printf("%.1f\n",sum); return 0; }
1136:首字母变大写
#include <stdio.h>#include <string.h>int main(){char a[100];gets(a);int i;for(i=0;a[i]!='\0';i++){if(a[i]==' '&&a[i+1]!=' '){if(a[i+1]>='a'&&a[i+1]<='z')a[i+1]=a[i+1]-32;}}if(a[0]>='a'&&a[0]<='z')a[0]=a[0]-32;puts(a);return 0;}#include <stdio.h> #include <string.h> int main() { char a[100]; gets(a); int i; for(i=0;a[i]!='\0';i++) { if(a[i]==' '&&a[i+1]!=' ') { if(a[i+1]>='a'&&a[i+1]<='z') a[i+1]=a[i+1]-32; } } if(a[0]>='a'&&a[0]<='z') a[0]=a[0]-32; puts(a); return 0; }#include <stdio.h> #include <string.h> int main() { char a[100]; gets(a); int i; for(i=0;a[i]!='\0';i++) { if(a[i]==' '&&a[i+1]!=' ') { if(a[i+1]>='a'&&a[i+1]<='z') a[i+1]=a[i+1]-32; } } if(a[0]>='a'&&a[0]<='z') a[0]=a[0]-32; puts(a); return 0; }
1137:查找最大元素
#include <stdio.h>#include <string.h>int main(){ int i;int j;char arr[1000];gets(arr);int sum[1000]={0};int x=strlen(arr);char max=arr[1];for(i=0;i<x;i++){if(arr[i]>max){max=arr[i];}}for(i=0;i<x;i++){if(max==arr[i]){printf("%c(max)", arr[i]);}else{printf("%c", arr[i]);}}return 0;}#include <stdio.h> #include <string.h> int main() { int i; int j; char arr[1000]; gets(arr); int sum[1000]={0}; int x=strlen(arr); char max=arr[1]; for(i=0;i<x;i++){ if(arr[i]>max) { max=arr[i]; } } for(i=0;i<x;i++){ if(max==arr[i]){ printf("%c(max)", arr[i]);} else{ printf("%c", arr[i]);} } return 0; }#include <stdio.h> #include <string.h> int main() { int i; int j; char arr[1000]; gets(arr); int sum[1000]={0}; int x=strlen(arr); char max=arr[1]; for(i=0;i<x;i++){ if(arr[i]>max) { max=arr[i]; } } for(i=0;i<x;i++){ if(max==arr[i]){ printf("%c(max)", arr[i]);} else{ printf("%c", arr[i]);} } return 0; }
1138:C语言合法标识符
#include <stdio.h>#include <stdlib.h>#include <string.h>int main() {char a[51];int i=0;int count=0;gets(a);int x=strlen(a);if((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')||(a[0]=='_')){for(i=0;i<x;i++){if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]=='_')||(a[i]>='0'&&a[i]<='9')){count++;}}if(count==x){printf("yes");}else{printf("no");}}else{printf("no");}return 0;}#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char a[51]; int i=0; int count=0; gets(a); int x=strlen(a); if((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')||(a[0]=='_')) { for(i=0;i<x;i++) { if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]=='_')||(a[i]>='0'&&a[i]<='9')) { count++; } } if(count==x) { printf("yes"); } else{ printf("no"); } } else{ printf("no"); } return 0; }#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char a[51]; int i=0; int count=0; gets(a); int x=strlen(a); if((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')||(a[0]=='_')) { for(i=0;i<x;i++) { if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]=='_')||(a[i]>='0'&&a[i]<='9')) { count++; } } if(count==x) { printf("yes"); } else{ printf("no"); } } else{ printf("no"); } return 0; }
1139:输出最短字符串
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){int n;int i=0;char min[1001],max[1001];scanf("%d",&n);getchar();gets(max);strcpy(min,max);for(i=1;i<n;i++){gets(max);if(strlen(max)<strlen(min)){strcpy(min,max);}}puts(min);return 0;}#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int n; int i=0; char min[1001],max[1001]; scanf("%d",&n); getchar(); gets(max); strcpy(min,max); for(i=1;i<n;i++) { gets(max); if(strlen(max)<strlen(min)){ strcpy(min,max); } } puts(min); return 0; }#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int n; int i=0; char min[1001],max[1001]; scanf("%d",&n); getchar(); gets(max); strcpy(min,max); for(i=1;i<n;i++) { gets(max); if(strlen(max)<strlen(min)){ strcpy(min,max); } } puts(min); return 0; }
1140:小数点后第n位 多实例
#include <stdio.h>#include <string.h>int main(){int t,n;scanf("%d",&t);int i,j;char a[1000];for(i=0;i<t;i++){scanf("%s%d",a,&n);for(j=0;a[j]!='\0';j++){if(a[j]=='.'){break;}}if((j+n)<strlen(a)){printf("%c\n",a[j+n]);}else printf("0\n");}return 0;}#include <stdio.h> #include <string.h> int main() { int t,n; scanf("%d",&t); int i,j; char a[1000]; for(i=0;i<t;i++) { scanf("%s%d",a,&n); for(j=0;a[j]!='\0';j++) { if(a[j]=='.') { break; } } if((j+n)<strlen(a)) { printf("%c\n",a[j+n]); } else printf("0\n"); } return 0; }#include <stdio.h> #include <string.h> int main() { int t,n; scanf("%d",&t); int i,j; char a[1000]; for(i=0;i<t;i++) { scanf("%s%d",a,&n); for(j=0;a[j]!='\0';j++) { if(a[j]=='.') { break; } } if((j+n)<strlen(a)) { printf("%c\n",a[j+n]); } else printf("0\n"); } return 0; }
python
n=int(input())for x in range(n):a,b=input().split()a=a.split('.')if(int(b)<=len(a[1])):print(a[1][int(b)-1])else:print(0)n=int(input()) for x in range(n): a,b=input().split() a=a.split('.') if(int(b)<=len(a[1])): print(a[1][int(b)-1]) else: print(0)n=int(input()) for x in range(n): a,b=input().split() a=a.split('.') if(int(b)<=len(a[1])): print(a[1][int(b)-1]) else: print(0)
1141:进制转换
#include <stdio.h>void convert(int n, char str[]);int main(){int n;char str[100001];convert(n,str);return 0;}void convert(int n, char str[]){int t=0;int i=0;int g;int h=0;scanf("%d",&n);while(n!=0){str[h++]=n%2;n=n/2;t++;}for(i=t-1;i>=0;i--){if(str[i]!=0){g=i;break;}}for(i=g-1;g>=0;g--){printf("%d",str[g]);}}#include <stdio.h> void convert(int n, char str[]); int main() { int n; char str[100001]; convert(n,str); return 0; } void convert(int n, char str[]){ int t=0; int i=0; int g; int h=0; scanf("%d",&n); while(n!=0) { str[h++]=n%2; n=n/2; t++; } for(i=t-1;i>=0;i--){ if(str[i]!=0) { g=i; break; } } for(i=g-1;g>=0;g--){ printf("%d",str[g]); } }#include <stdio.h> void convert(int n, char str[]); int main() { int n; char str[100001]; convert(n,str); return 0; } void convert(int n, char str[]){ int t=0; int i=0; int g; int h=0; scanf("%d",&n); while(n!=0) { str[h++]=n%2; n=n/2; t++; } for(i=t-1;i>=0;i--){ if(str[i]!=0) { g=i; break; } } for(i=g-1;g>=0;g--){ printf("%d",str[g]); } }
1142:二进制数的大小
#include <stdio.h>#include<string.h>#include <math.h>int bToD(char str[]);void c(int brr[],int n);void swap(int* g,int* h);int main(){char str[31];int a[3];int i=0;for(i=0;i<3;i++){scanf("%s",str);a[i]=bToD(str);}c(a, 3);for(i=0;i<3;i++){printf("%d ", a[i]);}return 0;}void c(int brr[],int n){int i,j;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(brr[i]>brr[j]){swap(&brr[i],&brr[j]);}}}}void swap(int* g,int* h){int t= *g;*g=*h;*h = t;}int bToD(char str[]){int x=strlen(str);int sum=0;for(int i=0;i<x;i++){if(str[i]=='1'){sum=sum+pow(2,x-i-1);}else{sum=sum+0;}}return sum;}#include <stdio.h> #include<string.h> #include <math.h> int bToD(char str[]); void c(int brr[],int n); void swap(int* g,int* h); int main() { char str[31]; int a[3]; int i=0; for(i=0;i<3;i++) { scanf("%s",str); a[i]=bToD(str); } c(a, 3); for(i=0;i<3;i++) { printf("%d ", a[i]); } return 0; } void c(int brr[],int n){ int i,j; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(brr[i]>brr[j]){ swap(&brr[i],&brr[j]); } } } } void swap(int* g,int* h){ int t= *g; *g=*h; *h = t; } int bToD(char str[]){ int x=strlen(str); int sum=0; for(int i=0;i<x;i++) { if(str[i]=='1'){ sum=sum+pow(2,x-i-1); } else{ sum=sum+0; } } return sum; }#include <stdio.h> #include<string.h> #include <math.h> int bToD(char str[]); void c(int brr[],int n); void swap(int* g,int* h); int main() { char str[31]; int a[3]; int i=0; for(i=0;i<3;i++) { scanf("%s",str); a[i]=bToD(str); } c(a, 3); for(i=0;i<3;i++) { printf("%d ", a[i]); } return 0; } void c(int brr[],int n){ int i,j; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(brr[i]>brr[j]){ swap(&brr[i],&brr[j]); } } } } void swap(int* g,int* h){ int t= *g; *g=*h; *h = t; } int bToD(char str[]){ int x=strlen(str); int sum=0; for(int i=0;i<x;i++) { if(str[i]=='1'){ sum=sum+pow(2,x-i-1); } else{ sum=sum+0; } } return sum; }
答案2:(来自徐佬)
#include <stdio.h>#include <string.h>int bToD(char str[]){int num=0;int j;for(j=0;j<strlen(str);j++){num=num*2+(str[j]-'0');}return num;}int main(){char str[1000000];int a[3];for(int i=0;i<3;i++){scanf("%s",str);a[i]=bToD(str);}int t;if(a[0]>a[1]){t=a[0];a[0]=a[1];a[1]=t;}if(a[2]>a[1]){t=a[2];a[2]=a[1];a[1]=t;}if(a[0]>a[2]){t=a[0];a[0]=a[2];a[2]=t;}printf("%d %d %d",a[0],a[2],a[1]);return 0;}#include <stdio.h> #include <string.h> int bToD(char str[]) { int num=0; int j; for(j=0;j<strlen(str);j++) { num=num*2+(str[j]-'0'); } return num; } int main() { char str[1000000]; int a[3]; for(int i=0;i<3;i++) { scanf("%s",str); a[i]=bToD(str); } int t; if(a[0]>a[1]) { t=a[0]; a[0]=a[1]; a[1]=t; } if(a[2]>a[1]) { t=a[2]; a[2]=a[1]; a[1]=t; } if(a[0]>a[2]) { t=a[0]; a[0]=a[2]; a[2]=t; } printf("%d %d %d",a[0],a[2],a[1]); return 0; }#include <stdio.h> #include <string.h> int bToD(char str[]) { int num=0; int j; for(j=0;j<strlen(str);j++) { num=num*2+(str[j]-'0'); } return num; } int main() { char str[1000000]; int a[3]; for(int i=0;i<3;i++) { scanf("%s",str); a[i]=bToD(str); } int t; if(a[0]>a[1]) { t=a[0]; a[0]=a[1]; a[1]=t; } if(a[2]>a[1]) { t=a[2]; a[2]=a[1]; a[1]=t; } if(a[0]>a[2]) { t=a[0]; a[0]=a[2]; a[2]=t; } printf("%d %d %d",a[0],a[2],a[1]); return 0; }
1143:最大值—多种进制
#include <stdio.h>#include <string.h>// 函数原型声明int KToD(char str[], int k);// 最大值多进制int main() {char str[10000];int n, k, i;int t, max = 0;scanf("%d", &n);for(i = 0; i < n; i++){scanf("%s %d", str, &k);t = KToD(str, k);if(max< t)max = t;}printf("%d", max);return 0;}int KToD(char str[], int k){int i, sum = 0;for(i = 0; str[i] != '\0'; i++){sum = sum * k + (str[i] - '0');}return sum;}#include <stdio.h> #include <string.h> // 函数原型声明 int KToD(char str[], int k); // 最大值多进制 int main() { char str[10000]; int n, k, i; int t, max = 0; scanf("%d", &n); for(i = 0; i < n; i++){ scanf("%s %d", str, &k); t = KToD(str, k); if(max< t) max = t; } printf("%d", max); return 0; } int KToD(char str[], int k){ int i, sum = 0; for(i = 0; str[i] != '\0'; i++){ sum = sum * k + (str[i] - '0'); } return sum; }#include <stdio.h> #include <string.h> // 函数原型声明 int KToD(char str[], int k); // 最大值多进制 int main() { char str[10000]; int n, k, i; int t, max = 0; scanf("%d", &n); for(i = 0; i < n; i++){ scanf("%s %d", str, &k); t = KToD(str, k); if(max< t) max = t; } printf("%d", max); return 0; } int KToD(char str[], int k){ int i, sum = 0; for(i = 0; str[i] != '\0'; i++){ sum = sum * k + (str[i] - '0'); } return sum; }
1144:多种进制
#include <stdio.h>#include <stdlib.h>#include <string.h>void dToK(int n, int k, char str[]){int i=0,len;while(n>0){str[i]=n%k+'0';n=n/k;i++;}str[i]='\0';len=strlen(str);for(i=len-1;i>=0;i--)printf("%c",str[i]);printf("\n");}int main(){int n;scanf("%d",&n);char str[1000];dToK(n,2,str);dToK(n,3,str);dToK(n,7,str);dToK(n,8,str);return 0;}#include <stdio.h> #include <stdlib.h> #include <string.h> void dToK(int n, int k, char str[]) { int i=0,len; while(n>0) { str[i]=n%k+'0'; n=n/k; i++; } str[i]='\0'; len=strlen(str); for(i=len-1;i>=0;i--) printf("%c",str[i]); printf("\n"); } int main() { int n; scanf("%d",&n); char str[1000]; dToK(n,2,str); dToK(n,3,str); dToK(n,7,str); dToK(n,8,str); return 0; }#include <stdio.h> #include <stdlib.h> #include <string.h> void dToK(int n, int k, char str[]) { int i=0,len; while(n>0) { str[i]=n%k+'0'; n=n/k; i++; } str[i]='\0'; len=strlen(str); for(i=len-1;i>=0;i--) printf("%c",str[i]); printf("\n"); } int main() { int n; scanf("%d",&n); char str[1000]; dToK(n,2,str); dToK(n,3,str); dToK(n,7,str); dToK(n,8,str); return 0; }
1145:有问题的里程表(2)
#include <stdio.h>#include <string.h>int main(){int i;char ch[10];gets(ch);int sum=0;int x=strlen(ch);for(i=0;i<x;i++){if(ch[i]>'4'){ch[i]--;}sum=sum*9+ch[i]-'0';}printf("%d",sum);return 0;}#include <stdio.h> #include <string.h> int main() { int i; char ch[10]; gets(ch); int sum=0; int x=strlen(ch); for(i=0;i<x;i++){ if(ch[i]>'4'){ ch[i]--; } sum=sum*9+ch[i]-'0'; } printf("%d",sum); return 0; }#include <stdio.h> #include <string.h> int main() { int i; char ch[10]; gets(ch); int sum=0; int x=strlen(ch); for(i=0;i<x;i++){ if(ch[i]>'4'){ ch[i]--; } sum=sum*9+ch[i]-'0'; } printf("%d",sum); return 0; }
1146:吃糖果
#include <stdio.h>int main(){int n;int t=0;int sum=0;int max=0,i=0;int x=0;int q=0;int h=0;scanf("%d",&n);for(i=0;i<n;i++){max=sum=0;scanf("%d",&t);for(h=0;h<t;h++){scanf("%d",&q);sum=sum+q;if(q>max){max=q;}}if(sum-max>=max-1){printf("Yes\n");}else{printf("No\n");}}return 0;}#include <stdio.h> int main() { int n; int t=0; int sum=0; int max=0,i=0; int x=0; int q=0; int h=0; scanf("%d",&n); for(i=0;i<n;i++){ max=sum=0; scanf("%d",&t); for(h=0;h<t;h++){ scanf("%d",&q); sum=sum+q; if(q>max){ max=q; } } if(sum-max>=max-1){ printf("Yes\n"); } else{ printf("No\n"); } } return 0; }#include <stdio.h> int main() { int n; int t=0; int sum=0; int max=0,i=0; int x=0; int q=0; int h=0; scanf("%d",&n); for(i=0;i<n;i++){ max=sum=0; scanf("%d",&t); for(h=0;h<t;h++){ scanf("%d",&q); sum=sum+q; if(q>max){ max=q; } } if(sum-max>=max-1){ printf("Yes\n"); } else{ printf("No\n"); } } return 0; }
1147:查找子数组
#include <stdio.h>int main(){int a[101],b[101];int m,n;int i,j,flog;scanf("%d %d",&n,&m);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=0;i<m;i++){scanf("%d",&b[i]);}for(i=0;i<n;i++){if(a[i]==b[0]){flog=i;for(j=0;j<m;j++){if(a[i+j]!=b[j]){break;}}}}if(j==m){printf("%d\n",flog);}else printf("No Answer\n");return 0;}#include <stdio.h> int main() { int a[101],b[101]; int m,n; int i,j,flog; scanf("%d %d",&n,&m); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<m;i++) { scanf("%d",&b[i]); } for(i=0;i<n;i++) { if(a[i]==b[0]) { flog=i; for(j=0;j<m;j++) { if(a[i+j]!=b[j]) { break; } } } } if(j==m) { printf("%d\n",flog); } else printf("No Answer\n"); return 0; }#include <stdio.h> int main() { int a[101],b[101]; int m,n; int i,j,flog; scanf("%d %d",&n,&m); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<m;i++) { scanf("%d",&b[i]); } for(i=0;i<n;i++) { if(a[i]==b[0]) { flog=i; for(j=0;j<m;j++) { if(a[i+j]!=b[j]) { break; } } } } if(j==m) { printf("%d\n",flog); } else printf("No Answer\n"); return 0; }
python
a,b=map(int,input().split())c=list(map(int,input().split()))d=list(map(int,input().split()))for i in range(a):if c[i:i+b]==d:print(i)exit()print("No Answer")a,b=map(int,input().split()) c=list(map(int,input().split())) d=list(map(int,input().split())) for i in range(a): if c[i:i+b]==d: print(i) exit() print("No Answer")a,b=map(int,input().split()) c=list(map(int,input().split())) d=list(map(int,input().split())) for i in range(a): if c[i:i+b]==d: print(i) exit() print("No Answer")
1148:组合三位数之一
#include <stdio.h>int PanDuan(int a,int b,int c){int s[10]={0};while(a){s[a%10]=1;a/=10;}while(b){s[b%10]=1;b/=10;}while(c){s[c%10]=1;c/=10;}for(int i=1;i<10;i++){if(s[i]==0)return 0;}return 1;}int main(){int a[30];int t;for(int i=10;i<33;i++){if(i*i>100&&i*i<1000)a[t++]=i*i;}for(int i=0;i<t;i++)for(int j=i+1;j<t;j++)for(int k=j+1;k<t;k++){if(PanDuan(a[i],a[j],a[k]))printf("%d %d %d\n",a[i],a[j],a[k]);}}#include <stdio.h> int PanDuan(int a,int b,int c) { int s[10]={0}; while(a) { s[a%10]=1; a/=10; } while(b) { s[b%10]=1; b/=10; } while(c) { s[c%10]=1; c/=10; } for(int i=1;i<10;i++) { if(s[i]==0) return 0; } return 1; } int main() { int a[30]; int t; for(int i=10;i<33;i++) { if(i*i>100&&i*i<1000) a[t++]=i*i; } for(int i=0;i<t;i++) for(int j=i+1;j<t;j++) for(int k=j+1;k<t;k++) { if(PanDuan(a[i],a[j],a[k])) printf("%d %d %d\n",a[i],a[j],a[k]); } }#include <stdio.h> int PanDuan(int a,int b,int c) { int s[10]={0}; while(a) { s[a%10]=1; a/=10; } while(b) { s[b%10]=1; b/=10; } while(c) { s[c%10]=1; c/=10; } for(int i=1;i<10;i++) { if(s[i]==0) return 0; } return 1; } int main() { int a[30]; int t; for(int i=10;i<33;i++) { if(i*i>100&&i*i<1000) a[t++]=i*i; } for(int i=0;i<t;i++) for(int j=i+1;j<t;j++) for(int k=j+1;k<t;k++) { if(PanDuan(a[i],a[j],a[k])) printf("%d %d %d\n",a[i],a[j],a[k]); } }
1149:组合三位数之二
#include <stdio.h>int PanDuan(int a,int b,int c){int ret=1;int s[10]={0};if(a*2!=b||a*3!=c)ret=0;while(a){s[a%10]=1;a/=10;}while(b){s[b%10]=1;b/=10;}while(c){s[c%10]=1;c/=10;}for(int i=1;i<10;i++){if(s[i]==0)ret=0;}return ret;}int main(){for(int i=100;i<333;i++){if(PanDuan(i,i*2,i*3))printf("%d %d %d\n",i,i*2,i*3);}}#include <stdio.h> int PanDuan(int a,int b,int c) { int ret=1; int s[10]={0}; if(a*2!=b||a*3!=c) ret=0; while(a) { s[a%10]=1; a/=10; } while(b) { s[b%10]=1; b/=10; } while(c) { s[c%10]=1; c/=10; } for(int i=1;i<10;i++) { if(s[i]==0) ret=0; } return ret; } int main() { for(int i=100;i<333;i++) { if(PanDuan(i,i*2,i*3)) printf("%d %d %d\n",i,i*2,i*3); } }#include <stdio.h> int PanDuan(int a,int b,int c) { int ret=1; int s[10]={0}; if(a*2!=b||a*3!=c) ret=0; while(a) { s[a%10]=1; a/=10; } while(b) { s[b%10]=1; b/=10; } while(c) { s[c%10]=1; c/=10; } for(int i=1;i<10;i++) { if(s[i]==0) ret=0; } return ret; } int main() { for(int i=100;i<333;i++) { if(PanDuan(i,i*2,i*3)) printf("%d %d %d\n",i,i*2,i*3); } }
1150:数数多少个整数
#include<stdio.h>#include<ctype.h>int main(){char arr[1000],sum=0,flag=0;gets(arr);for(int i=0;arr[i]!='\0';i++){if(isdigit(arr[i])&&flag==0){if(arr[i]=='0'&&isdigit(arr[i+1]))//判断0123 这种{sum++;flag=0;continue;//0记一个数字 进入下一次循环}sum++;//判断123这种flag=1;//改变flag防止后续被计算到内}if(!isdigit(arr[i]))//当当前字符不是数字字符 改变flag为0flag=0;}printf("%d\n",sum);return 0;}#include<stdio.h> #include<ctype.h> int main() { char arr[1000],sum=0,flag=0; gets(arr); for(int i=0;arr[i]!='\0';i++) { if(isdigit(arr[i])&&flag==0) { if(arr[i]=='0'&&isdigit(arr[i+1]))//判断0123 这种 { sum++; flag=0; continue;//0记一个数字 进入下一次循环 } sum++;//判断123这种 flag=1;//改变flag防止后续被计算到内 } if(!isdigit(arr[i]))//当当前字符不是数字字符 改变flag为0 flag=0; } printf("%d\n",sum); return 0; }#include<stdio.h> #include<ctype.h> int main() { char arr[1000],sum=0,flag=0; gets(arr); for(int i=0;arr[i]!='\0';i++) { if(isdigit(arr[i])&&flag==0) { if(arr[i]=='0'&&isdigit(arr[i+1]))//判断0123 这种 { sum++; flag=0; continue;//0记一个数字 进入下一次循环 } sum++;//判断123这种 flag=1;//改变flag防止后续被计算到内 } if(!isdigit(arr[i]))//当当前字符不是数字字符 改变flag为0 flag=0; } printf("%d\n",sum); return 0; }
THE END
暂无评论内容