C语言基础练习(三)
来源:互联网 发布:mysql 定位慢查询 编辑:程序博客网 时间:2024/05/31 19:57
1、字符串
- 如输入:Z2009-AShanghaiZ
////则输出:lenth = 8;
事例说明:从A到Z的子串为SHanghai,其长度是8.
#include <stdio.h>void main(void){ char a[100]; int i = 0, left = 0, right = 0; gets(a); for(i=0; a[i]; i++) //当a[i]="\0"时结束循环。 { if(a[i] == 'A') //寻找起始标志"A"。 { i++; left = i; while(a[i]) { if(a[i] == 'Z') //寻找结束标志"Z"。 { right = i; break; } i++; } } } if(a[left-1]!='A') //如果没找到起始标志"A",报错。 printf("请以A开头"); else if(a[right]!='Z') //如果找到"A"却没找到"Z",报错 { printf("请以Z结尾"); printf("----%c-----",a[right]); } else //如果符合要求,输出。 printf("%d.\n",right-left); return;}
2、阶乘求和函数
- 实现整数(n<=10)的算式:n!+(n-1)!+(n-2)!…+3!+2!+1!
输入n=3:结果3!+2!+1!=9
函数原型:int jiehcheng_sum(int n)
#include <stdio.h>int jiecheng(int n); //阶乘函数声明int jiecheng_sum(int n); //将阶乘求和的函数声明void main(void){ int a = 0; scanf("%d", &a); printf("%d.\n", jiecheng_sum(a)); return;}int jiecheng_sum(int n){ int sum = 0; while(n) sum += jiecheng(n--); return sum;}int jiecheng(int n){ int sum = 1; while(n) sum *= n--; return sum;}
3、表达式构造:
给出三个正整数a,b和c,你可以在他们之间插入加号或者括号将其变成一个表达式。比如给出数字1,2和3,你可以构造出:
1+2*3=7
1*(2+3)=5
1*2*3=6
(1+2)*3=9 等表达式。
现在你需要构造一个值最大的表达式,输出这个值。
输入描述:
第一行包含三个证书a,b和C。1<=a,b,c<=10输出描述:
输出对应的答案。输入样例:
1 2 3输出样例:
9
#include <stdio.h>int max(int a1, int a2, int a3);void mppx(int arr[], int len);void main(void){ int a = 0, b = 0, c = 0; scanf("%d %d %d", &a, &b, &c); printf("%d.\n", max(a, b, c)); return;}int max(int a1, int a2, int a3){ int b[8]; //三个数求运算结果最大值,只需考虑乘法加法,只有八种结果。 b[0] = a1 + a2 + a3; b[1] = a1 * a2 + a3; b[2] = a1 * (a2+a3); b[3] = a1 + a2 * a3; b[4] = (a1+a2) * a3; b[5] = a1 * a3 + a2; b[6] = (a1*a3) + a2; b[7] = a1 * a2 * a3; mppx(b, 8); //用冒泡排序将所有结果中最大的找出来。 return b[7]; //返回最大值。}void mppx(int arr[], int len){ int i = 0, j = 0, tem = 0; for(i=0; i<len-1; i++) { for(j=0; j<len-i-1; j++) { if(arr[j]>arr[j+1]) { tem = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tem; } } } return;}
4、冒泡排序
- 题目描述:
一个数组有N个元素,使用冒泡排序输出。 - 输入描述:
输入为两行。
第一行一个正整数n(1<=n<=1000),表示一共有n个元素。
第二行为n个数,即每个元素,每个整数都在32位int范围。以空格分割。 - 输出描述:
输出一行,即排序之后的数组,以空格分割,行末无空格。
#include <stdio.h>void mppx(int arr[], int len);void prtarr(int arr[], int len);void main(void){ int n = 0, i = 0; int data[1000]; scanf("%d", &n); for(i=0; i<n; i++) scanf("%d",data+i); mppx(data, n); prtarr(data, n); return;}void mppx(int arr[], int len){ int i = 0, j = 0, tem = 0; for(i=0; i<len-1; i++) { for(j=0; j<len-i-1; j++) { if(arr[j]>arr[j+1]) { tem = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tem; } } } return;}void prtarr(int arr[], int len){ int i = 0; for(i=0; i<len; i++) printf(" %d",arr[i]); return;}
阅读全文
0 0
- C语言基础练习(三)
- C语言基础 (练习)
- c语言基础练习
- C语言基础练习
- C语言练习作业(三)
- C语言基础(三)
- C语言基础(三)
- C 语言基础(三)
- c语言基础(三)
- c语言基础(三)
- C语言基础(三)
- C语言基础(三)
- C语言基础练习篇(1)
- C语言基础练习(1)
- C语言基础练习(2)
- C语言基础练习(一)
- C语言基础练习(二)
- C语言基础练习(四)
- 91. Decode Ways(解码方式)
- Electron From Beginner to Pro.pdf 英文原版 免费下载
- 熔断器 Hystrix 源码解析 —— 执行结果缓存
- 第十二周
- jython未能封装jar包的原因
- C语言基础练习(三)
- 在EPS开发中遵循ISO 26262标准
- Python Game Programming By Example.pdf 英文原版 免费下载
- tensorflow实现word2vec
- FPGA实验四——时间基准电路和带使能的多周期计数器
- python学习---第六天
- Python 3 for Absolute Beginners.pdf 英文原版 免费下载
- 冒泡排序
- js只能输入数字或者分号!