赞
踩
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 | 对应字母 |
---|---|
A | Z |
B | Y |
C | X |
D | W |
… | … |
X | C |
Y | B |
Z | A |
输入:一串字符串。
输出:字符串中的大写英文字母按对应规则替换后的结果。
优化目标:可能没有优化目标。
- #include<stdio.h>
- #include<string.h>
- #define maxsize 10000
-
- int main(){
- char s[maxsize];
- gets(s);
- int i;
- int len=strlen(s);
- for(i=0;i<len;i++){
- if(s[i]>='A'&&s[i]<='Z'){
- s[i]='A'+'Z'-s[i];
- }
- }
- puts(s);
- }
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
输入:五串字符串。
输出:按由小到大的顺序输出。
优化目标:可能没有优化目标。
-
- #include<stdio.h>
- #include<string.h>
-
-
- int main(){
- char s[5][80],t[80];
- int i,j;
- for(i=0;i<5;i++){
- scanf("%s",&s[i]);
- }
- for(i=0;i<4;i++){
- for(j=0;j<4-i;j++){
- if(strcmp(s[j],s[j+1])>0){//比较大小
- strcpy(t,s[j]);//交换顺序
- strcpy(s[j],s[j+1]);
- strcpy(s[j+1],t);
- }
- }
- }
- printf("After sorted:\n");
- for(i=0;i<5;i++){
- printf("%s\n",s[i]);
- }
- return 0;
- }
输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。
输入:n个朋友的信息,包括姓名name、生日birth、电话号码number。
输出:年龄从大到小的顺序依次输出通讯录。
优化目标:可能没有优化目标。
- #include<stdio.h>
- struct student {
- char name[10];
- int birth;
- char number[20];
- }stu[10],stu1;//stu1交换信息
- int main(){
- int i,j,num;
-
- scanf("%d",&num);
- for(i=0;i<num;i++){
- scanf("%s %d %s",& stu[i].name, &stu[i].birth, &stu[i].number);
- }
- for (i=0; i<num-1;i++){
- for (j=0;j<num-i-1;j++){
- if (stu[j].birth>stu[j+1].birth){
- stu1 = stu[j];
- stu[j] = stu[j+1];
- stu[j+1] = stu1;
- }
- }
- for (i=0;i<num;i++){
- printf("%s %d %s\n", stu[i].name, stu[i].birth, stu[i].number);
- }
- return 0;
- }
- }
找鞍点
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序,求一个给定的n阶方阵的鞍点。
输入:方阵为n阶方阵,输入给定的n阶方阵
输出:求一个给定的n阶方阵的鞍点。
优化目标:可能没有优化目标。
- #include<stdio.h>
- int main(){
- int n;
- scanf("%d",&n);
- int s[n][n];
- int i,j;
- for(i=0;i<n;i++){
- for(j=0;j<n;j++){
- scanf("%d",&s[i][j]);
- }
- }
- int t=0;//判断程序内有无符合要求的输出
- int r=0,l=0;
- int flag=0;
- for(i=0;i<n;i++){
- for(j=0;j<n;j++){
- if(s[i][j]>=s[i][l]){
- l=j;
- flag=1;
- }
- }
- for(r=0;r<n;r++){
- if(s[r][l]<s[i][l]){
- flag=0;
- break;
- }
- }
- if(flag){
- printf("%d %d",i,l);
- t=1;//表示有输出
- }
- }
- if(t==0){
- printf("NONE");
- }
- }
水仙花数
输入:无
输出:三位的水仙花数。
优化目标:可能没有优化目标。
- #include<stdio.h>
- #define maxsize 1000
- int main(){
- int N;
-
- int i;
- int num;
- int count=0;
- int a,b,c ;//用来记录个十百位的数字
- for(i=100;i<1000;i++){
- a=i/100;
- c=i%10;
- b=(i-a*100)/10;
- num=(a*a*a)+(b*b*b)+(c*c*c);
- if(num==i){
- printf("%d ",num);
-
- }
- }
- }
单链表排序
输入:表长count,表中各元素的值。
输出:表内的值按由小至大输出。
优化目标:可能没有优化目标
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct LNode *linklist;
- struct LNode{
- int data;
- linklist next;
- };
- int initlist(){
- linklist L=(linklist)malloc(sizeof(linklist));
- L->next=NULL;
- linklist L1=L;
- int num=0;
- int count;
- int x=0;
- printf("输入元素个数");
- scanf("%d",&count);
- while(x<count){
- printf("请输入元素%d的值",x);
- scanf("%d",&num);
- linklist q=(linklist)malloc(sizeof(linklist));
- q->data=num;
- q->next=NULL;
- L1->next=q;
- L1=q;
- x++;
- }
- return L;
- }
- int sort(linklist L){
- int i,j,num;
- int count =1;
- linklist L1=L,L3=L->next,tail,L2;
- while(L3->next!=NULL){
- L3=L3->next;
- count++;
- }
-
- for(i=0;i<count-1;i++){
- num=count -1-i;
- L2=L->next;
- L1=L2->next;
- for(num;num>0;num--){
- if(L2->data>L1->data){
- int temp=L2->data;
- L2->data=L1->data;
- L1->data=temp;
- }
- L2=L2->next;
- L1=L1->next;
- }
- }
- return L;
- }
-
- int main(){
- linklist L=initlist();
- linklist L1;
- L1=sort(L);
- L1=L1->next;
- while(L1!=NULL){
- printf(" %d",L1->data);
- L1=L1->next;
- }
- }
今天学习了一部分关于PTA上c语言的经典例题复习了一些链表的内容,明天会继续学习链表和栈的一些例题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。