编程练习收获
来源:互联网 发布:java unicode编码表 编辑:程序博客网 时间:2024/05/19 09:09
1.输入一个字符串,判断其是否是C的合法标识符。Input输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。Output对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
#include<stdio.h>int main(){int n,i,lag;char a[50];scanf("%d",&n);getchar();while(n--){lag=0;gets(a);//为什么用scanf输入字符串时,遇到空格就结束,后面的字符不算 if((a[0]>='a' && a[0]<='z')||(a[0]>='A' && a[0]<='Z')|| a[0]=='_'){for(i=1;a[i]!='\0';i++)、、此语句也可用strlen 求长度后用for循环n来写{if((a[i]>='a' && a[i]<='z')||(a[i]>='A' && a[i]<='Z')|| a[i]=='_' || (a[i]>='0' && a[i]<='9')) lag=1;else{lag=2;break;}}if(lag==1) printf("yes\n");else printf("no\n");}else{ printf("no\n");} }return 0;}
2.# include <stdio.h># include <string.h>int main (void){char str[100];while (~scanf("%s",str)){int length,i;char max = 'A';//此题是按ASCII码排序;所以A算是最小元素 length = strlen(str);for (i=0;i<length;i++)//找出ASCII码最大的元素 if (str[i]>=max)max = str[i];for (i=0;i<length;i++)//循环输出每个元素,如果是最大元素就在后面加(max) if (str[i]!=max)putchar(str[i]);elseprintf("%c(max)",max);printf("\n");}return 0;}2.在找到的最大字母后面加一个字符串方法 输出时直接用输出语句打出即可 %c(max) 而非后面的maxfor (i=0;i<length;i++)//循环输出每个元素,如果是最大元素就在后面加(max)
if (str[i]!=max)putchar(str[i]);elseprintf("%c(max)",max);3输入一个英文句子,将每个单词的第一个字母改成大写字母。Input输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。Output请输出按照要求改写后的英文句子。#include<stdio.h>#include<string.h>int main(){int len,i;char str[100];while(gets(str)){len=strlen(str);for(i=0;i<len;i++){if(i==0) str[0]=str[0]-32;if(str[i]==' '){str[i+1]=str[i+1]-32;}printf("%c",str[i]);}printf("\n");}}while(gets(str)) 这句使用的好5.判断回文串中其中优秀序数处理语句f=1;for(j=0;j<l/2;j++){if(str[j]!=str[l-j-1]){f=0;不用分奇数偶数,直接一步到位6.判断字符串中汉字的个数ASCII码的范围是0-127所以,超出范围的都是汉字,因为一个汉字占两个字符位置,所以结果除以2就可以了#include<stdio.h>#include<string.h>int main(){char a[100001];int n;int i;int s;scanf("%d",&n);getchar();while(n--){ gets(a); s=0; for(i=0;i<strlen(a);i++) { if(a[i]<0||a[i]>127) s++; } printf("%d\n",s/2);}return 0;}7.十进制转换为其他进制 实质上各个位是余数,#include<stdio.h>#include<math.h>int main(){int n,m,b,i,j;char a[100];while(scanf("%d%d",&n,&m)!=EOF){j=0;if(n<0){n=-n;printf("-"); }while(n){ b=n%m;if(b<10)a[j]=(char)(b+'0');if(b>=10)a[j]=(char)('A'+b-10); n=n/m; j++;}while(j--)printf("%c",a[j]);printf("\n");}return 0;}8.利用叉乘1/2*a*bsin求多边形面积,n个点所围成的多边形#include<stdio.h>int main(void){int n;int a[100],b[100],i,j,k;double s;while(scanf("%d",&n)!=EOF&&n){s=0;i=0;//k=n;for(i=0;i<n;i++)scanf("%d%d",&a[i],&b[i]);a[n]=a[0];b[n]=b[0];for(i=0;i<n;i++)s+=(a[i]*b[i+1]-a[i+1]*b[i]);printf("%.1lf\n",s/2);}return 0;}9.贪心贪心思想:节目时间越早结束,能看的节目数量就越多输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。Output对于每个测试实例,输出能完整看到的电视节目的个数,每个测试实例的输出占一行。121 33 40 73 815 1915 2010 158 186 125 104 142 90Sample Output5#include<stdio.h>int main(){int n,size[100][2],i,j,ex1,ex2,count,began;while(scanf("%d",&n)!=EOF&&n){for(i=0;i<n;i++)for(j=0;j<2;j++)scanf("%d",&size[i][j]);//交换排序时间的数据for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(size[i][1]>size[j][1]){ex1=size[i][0];ex2=size[i][1];size[i][0]=size[j][0];size[i][1]=size[j][1];size[j][0]=ex1;size[j][1]=ex2;}//找开始时间,如果开始时间越小,证明节目的时长越小,就能看到更多的节目for(count=0,i=0,began=0;i<n;i++)if(size[i][0]>=began){began=size[i][1];count++;}printf("%d\n",count);}return 0;}10.真约数:除了自身外的所有正约数 已查验!220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284。114位数10进制数字化16进制,12进制方法.int h[4],b,sum,a;a=sum=0;while(i!=0){h[a++]=i%j;i/=j;sum+=h[a-1];}
阅读全文
0 0
- 编程练习收获
- 今天多线程编程练习中的一些收获
- 输出练习收获
- 今天的编程收获
- 编程的收获
- 阅读编程规范收获
- 《编程珠玑》 学习收获
- 编程小收获
- 今天学习编程有收获
- Java编程思想阅读收获
- 《C++高级编程》中的收获
- 编程练习
- 编程练习
- 编程练习
- 编程练习
- 编程练习
- 编程练习
- 编程练习
- 谷歌机器翻译Attention is All You Need
- C#连接 ODBC 数据源时的默认驱动程序问题
- 【bzoj2038】[2009国家集训队]小Z的袜子(hose) (莫队算法)
- POJ 2508 Conic distance 笔记
- SEVERE: Error listenerStart 、Unsupported major.minor version 52.0
- 编程练习收获
- HTTP状态码详解
- javascript 正则对象(RegExp)方法
- PAT乙级 1038. 统计同成绩学生(20)
- [LeetCode] 515. Find Largest Value in Each Tree Row
- 配置Java环境
- 编译原理学习资料整理
- PAT乙级 1039. 到底买不买(20)
- 真正的MVC思想