disanci

disanci,第1张

disanci

最大字符串

#include

#include

#include

char a[100][1000];

char *b[100];

int cnt;

int sort (char *x[]){

              int maxu=1;

            for(int i=2;i<=cnt;i++){

                    if(strcmp(b[maxu],b[i])<0){

                                     maxu=i;

                             }              

               }

               return maxu;

}

int main(){

           while(gets(a[++cnt])){ 

                      

                     b[cnt]=a[cnt];

//                  printf("%sn",b[cnt]);

//                  printf("上一个%sn",b[cnt-1]);

                     if(strcmp(a[cnt],"*****")==0)

                                            break;

              }

       //    printf("dsad");

//    for(int i=1;i<=cnt;i++){

//           printf("%sn",b[i]);

//    }

       printf("%s",b[sort(b)]);

        

}

阶段字符串

#include

#include

char s[100];

int n;

int main(){

   scanf("%s",s);

   scanf("%d",&n);

         char *p;

            p=s+n-1;

             printf("%s",p);

}

使用指针

#include

#include

char s[100];

int n;

int main(){

   scanf("%s",s);

   printf("%d",strlen(s));

}

翻转字符串

#include

#include

char s[100];

int n;

void change (char s[]){

          char *p;

          p=s;

          int len=strlen(s);

            char *q=&s[len-1];

              while(p<=q){

              //      printf("%c",*q);

                     char temp;

                     temp=*p;

                     *p=*q;

                     *q=temp; 

                                   p++;

                                   q--; 

                 }

}

int main(){

   scanf("%s",s);

    change(s);

    //printf("sadas");

    printf("%s",s);

}

猜猜我多长

#include

#include

char s[100];

int n;

int len(char s[]){

           char  *p=s;

           int cnt=0;

            while(1){

                    if(*(p+cnt)=='')

                    break;

                    else

                    cnt++;

               } 

               return cnt;

}

int main(){

   gets(s);

   printf("%d",len(s));

}

用指针输出数组

#include

#include

char s[100];

int n;

int a[3000];

void print(int s[]){

       int *p=s+1;

        for(int i=0;i<10;i++){

                printf("%d ",*(p+i));

        }

}

int main(){

   for(int i=1;i<=10;i++){

      scanf("%d",&a[i]);

   }

   print(a);

}

字符串滞销

#include

#include

char s[100];

int n;

int a[3000];

int main()

{

   gets(s);

   printf("%s",s);

}

交换两个数字

#include

#include

int a,b;

void swap(int *x,int *y){

       int temp;

          temp=*x;

          *x=*y;

          *y=temp;

}

int main(){

   scanf("%d%d",&a,&b);

   swap(&a,&b);

    printf("%d %d",a,b);

}

这也是

#include

#include

#include

struct person{

    char name[20];

    int count;

};

struct person leader[300];

int main(){

    int i,j,max,t;

   char v[300];

        for(j=0;j<3;j++){

            scanf("%s",leader[j].name);

            leader[j].count++;

        }while(~scanf("%s",v)){

                 for(int j=0;j<3;j++){

                       if( strcmp(v,leader[j].name)==0){

                                    leader[j].count++;

                               }

                 }

    }

    max=leader[0].count;t=0;

    for(i=0;i<3;i++){

        if(leader[i].count>max){

               max=leader[i].count;

        t=i;}

    }

    printf("%s",leader[t].name);

    return 0;

}

输出坐标

#include

#include

#include

struct node{

         double x,y;

}a[3];

struct node   l;

int main(){

        for(int i=1;i<=2;i++){

                scanf("%lf%lf",&a[i].x,&a[i].y);

                

              }

              l.x=a[1].x-a[2].x;

              l.y=a[1].y-a[2].y;

              printf("(%.1f, %.1f)",l.x,l.y);

    return 0;

}

这是一个

#include

#include

#include

struct node{

         char s[100];

         double a,b,c,aver;

}a[4];

void sort(struct node x[]){

             for(int i=1;i<=2;i++){

                    double maxu =a[i].aver;

                    int flag=i;

                      for(int j=i+1;j<=3;j++){

                              if(a[j].aver>maxu){

                                      maxu=a[j].aver;

                                      flag=j;

                                                  }

                                   }

                                   struct node temp=a[i];

                              a[i]=a[flag];

                              a[flag]=temp;

                }

}

int main(){

        for(int i=1;i<=3 ;i++){

                scanf("%s%lf%lf%lf",a[i].s,&a[i].a,&a[i].b,&a[i].c);

                a[i].aver=(a[i].a+a[i].b+a[i].c)/3;

              }

              sort(a);

      

                        printf("%s %.2fn",a[1].s,a[1].aver);

             

             

    return 0;

}

输出学号

#include

#include

#include

struct node{

         char hao[300];

         char name[300];

         int score;

}a[5000];

int n;

void sort(struct node x[]){

             for(int i=1;i

                    double maxu =a[i].score;

                    int flag=i;

                      for(int j=i+1;j<=n;j++){

                              if(a[j].score>maxu){

                                      maxu=a[j].score;

                                      flag=j;

                                                  }

                                   }

                                   struct node temp=a[i];

                              a[i]=a[flag];

                              a[flag]=temp;

                }

}

int main(){

       while(1){

         scanf("%d",&n);

         if(n==0)

         break;

        for(int i=1;i<=n ;i++){

                scanf("%s%s%d",a[i].hao,&a[i].name,&a[i].score);

               // a[i].aver=(a[i].a+a[i].b+a[i].c)/3;

              }

              sort(a);

      

                        printf("%s %sn",a[1].hao,a[1].name);

             

       }

    return 0;

}

输出日期

#include

#include

#include

struct node{

         int x,y;

}a[5000];

int n,m,cnt;

void sort(struct node x[]){

             for(int i=1;i

                    int maxu =a[i].x;

                    int minu=a[i].y;

                    int flag=i;

                      for(int j=i+1;j<=n;j++){

                              if(a[j].x>maxu||(a[j].x==maxu&&a[j].y>minu)){

                                      maxu=a[j].x;

                                      minu=a[j].y;

                                      flag=j;

                                                  }

                                   }

                                   struct node temp=a[i];

                              a[i]=a[flag];

                              a[flag]=temp;

                }

}

int main(){

       while(1){

         scanf("%d%d",&n,&m);

         if(n==0&&m==0)

         break;

        a[++cnt].x=n;

        a[cnt].y=m;

        sort(a);   

       }

       for(int i=cnt;i>=1;i--){

               printf("%d %dn",a[i].x,a[i].y);

       }

    return 0;

}

学生信息

#include

#include

#include

int n;double sum=0,tt=0;

struct node {

    char name[10];

    char id[10];

    double data;

    struct node* next;

};

struct node *creat()

{

    struct node *head,*p1,*p2;

    p1=p2=(struct node*) malloc(sizeof(struct node));

    scanf("%s",p1->name);

    while(strcmp(p1->name,"*")!=0)

    {

        scanf("%s%lf",p1->id,&p1->data);

        n++;

        if(n==1) head=p1;

        else p2->next=p1;

        sum+=(p1->data);

        p2=p1;

        p1=(struct node*) malloc(sizeof(struct node));

        scanf("%s",p1->name);

    }

    p2->next=NULL;

    return head;

}

void del(struct node *head,double x)

{

    struct node *p1,*p2;

    if( head==NULL) return ;

   

    p1=head;

    while(p1->next!=NULL){

        p2=p1->next;

        if(x==p1->next->data){

                      p1->next=p1->next->next;

              }

              if(p2->next==NULL&&x==p2->data){

                      p2=NULL;

                      break;

              }

              p1=p2;}

}

void print(struct node *head)

{

    struct node *p;

    p=head;

    if(head!=NULL)

        do

        {

            printf("%sn",p->name);

            p=p->next;

        }while(p!=NULL);

   

}

int main()

{

    struct node *head;

    head=creat();

    tt=sum/n;

    struct node *p;

    p=head;

    while(p!=NULL)

    {

        if(p->data < tt){

            del(head,p->data);

        }

            p=p->next;

    }

    print(head);

}

单向列表

#include

#include

int n;

int a[10000];

int main(){

       scanf("%d",&n);

       while(n--){

              int flag=0;

              int num=0;

                     while(1){

                          scanf("%d",&a[++num]);

                          if(a[num]==-1)

                                     break;

                        }

                        for(int i=1;i<=num;i++){

                             if(a[i]!=-1&&a[i]%2==0){

                               flag=1;

                                   printf("%d ",a[i]);

                                     }

                        }

                        if(!flag){

                           printf("NULL");

                        }

                        printf("n");

       }

}

链表的交集

#include

#include

int n;

int a[10000];

int num,cnt;

int b[10000];

int c[10000];

int kl;

int main(){

         while(1){

               scanf("%d",&a[++num]);

               if(a[num]==-1)

               break;

         }

         while(1){

               scanf("%d",&b[++cnt]);

               if(b[cnt]==-1)

               break;

         }

           int head=1;int tail=1;

            while(head!=num&&tail!=cnt){

                    if(a[head]==b[tail]){

                       c[++kl]=a[head];

                       head++;

                       tail++;

                            }

                            else{

                                   if(a[head]

                                   head++;

                                   else

                                   tail++; 

                            }

               }

               if(kl==0){

                     printf("NULL");

               }

               for(int i=1;i<=kl;i++){

                     printf("%d ",c[i]);

               }

}

算法2-8

#include

#include

#include

#define OK 1

#define ERROR 0

#define TRUE 1

#define FALSE 0

typedef int Status;

typedef int Elemtype;

typedef struct Node{

       Elemtype elem;

       struct Node *next;

}Node, *linklist;

Status visit(Elemtype e)

{

       printf("%d", e);

       return OK;

}

Status Initlinklist(linklist *L)

{

       *L = (linklist)malloc(sizeof(Node));

       if(!(*L))    return ERROR;

       (*L)->next = NULL;

       return OK;

}

Status ListInsert(linklist *L, int i, Elemtype e)

{

       int j = 1;

       linklist p, s;

       p = *L;

       while(p && j < i){

              p = p->next;

              ++j;

       }

       if(!p || j > i)     return ERROR;

       s = (linklist)malloc(sizeof(Node));

       s->elem = e;

       s->next = p->next;

       p->next = s;

       return OK;

}

Status ListDelete(linklist *L, int i, Elemtype *e)

{

       int j = 1;

       linklist p, q;

       p = *L;

       while(p->next && j < i){

              p = p->next;

              ++j;

       }

       if(!(p->next) || j > i)

              return ERROR;

       q = p->next;

       p->next = q->next;

       *e = q->elem;

       free(q);

       return OK;

}

int ListLength(linklist L)

{

       int i;

       linklist p;

       i = 0;

       p = L->next;

       while(p){

              i++;

              p = p->next;

       }

       return i;

}

Status ListEmpty(linklist L)

{

       if(L->next)     return FALSE;

       else return TRUE;

}

Status ClearList(linklist *L)

{

       linklist p, q;

       p = (*L)->next;

       while(p){

              q = p->next;

              free(p);

              p = q;

       }

       (*L)->next = NULL;

       return OK;

}

Status GetElem(linklist L, int i, Elemtype *e)

{

       linklist p;

       int j;

       j = 1;

       p = L->next;

       while(p && j < i){

              ++j;

              p = p->next;

       }

       if(!p || j > i)     return ERROR;

       *e = p->elem;

       return OK;

}

int ElemLocate(linklist L, Elemtype e)

{

       int i;

       i = 0;

       linklist p;

       p = L->next;

       while(p){

              i++;

              if(p->elem == e)

                     return i;

              p = p->next;

       }

       return 0;

}

Status ListTraverse(linklist L)

{

       linklist p;

       p = L->next;

       while(p && p->next != NULL){

              visit(p->elem);

              printf(" ");

              p = p->next;

       }

       visit(p->elem);

       printf("n");

       return OK;

}

int main()

{

       linklist L;

       Initlinklist(&L);

       int n;

       int nn;

       int num;

       int i = 1;

       int j;

       char str[100];

       int loc;

       Elemtype e;

       scanf("%d", &n);

       for(j = 0; j < n; j++){

              scanf("%d", &num);ListInsert(&L, 1, num);

       }

       scanf("%d", &nn);

       for(j = 0; j < nn; j++){

              scanf("%s", str);

              if(strcmp (str, "show") == 0){

                     if(ListEmpty(L)){

                            printf("link list is emptyn");

                            continue;

                     }

                     ListTraverse(L);

              }

              else if(strcmp (str, "delete") == 0){

                     scanf("%d", &loc);

                     if(ListDelete(&L, loc, &e))

                            printf("delete OKn");

                     else

                            printf("delete failn");

              }

              else if(strcmp (str, "get") == 0){

                     scanf("%d", &loc);

                     if(GetElem (L, loc, &e)){

                            printf("%dn", e);

                     }

                     else

                            printf("get fail");

              }

              else if(strcmp (str, "insert") == 0){

                     scanf("%d%d", &loc, &num);

                     if(ListInsert (&L, loc, num))

                            printf("insert OKn");

                     else

                            printf("insert failn");

              }

       }

       return 0;

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5692907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存