1. 程式人生 > >五、PTA實驗作業(結構體)

五、PTA實驗作業(結構體)

截圖 image 分數 blog double img class namespace def

技術分享圖片

1、提交列表

技術分享圖片

2、設計思路就是設計一個類似於在數組裏面求最低和最大數值的函數

技術分享圖片

最終代碼如下:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef struct Node{
    char s[35];
    double price;
}Node;
bool cmp(Node a, Node b){
    return a.price<b.price;
}
int main(){
    int n;
    Node t[
15]; cin>>n; getchar(); for(int i = 0;i<n;i++){ gets(t[i].s); cin>>t[i].price; getchar(); } sort(t,t+n,cmp); printf("%.2lf, %s\n",t[n-1].price,t[n-1].s); printf("%.2lf, %s\n",t[0].price,t[0].s); return 0; }


技術分享圖片

題目二:

技術分享圖片

1、提交列表

技術分享圖片

2、設計思路(包括流程圖)

技術分享圖片

最終代碼如下:

#include<stdio.h>  
#include<stdlib.h>  
#include<string.h>  
  
  
struct list{  
    char name[11];  
    char num[17];  
    char phone[17];  
    char sex[2];
    char birthday[11];  
};  
struct list p[100];  
  
  
int main()  
{  
  
int i=0;int j=0,N,K;  
scanf("%d
",&N); for(i=0;i<N;i++) { scanf("%s %s %c %s %s\n",&p[i].name,&p[i].birthday,&p[i].sex,&p[i].num,&p[i].phone); } scanf ("%d", &K); int number; for (i=0; i<K; i++) { scanf ("%d", &number); if (number < N && number>=0) { printf("%s %s %s %s %s\n",p[number].name,p[number].num,p[number].phone,p[number].sex,p[number].birthday); } else { printf ("Not Found\n"); } } return 0; }

技術分享圖片

題目三:

技術分享圖片

1、提交列表

技術分享圖片

2. 設計思路(包括流程圖)

就是從高到低的順序來進行配對,高分的0對應低分的1,高分的1對應低分的0;由數組的先後順序來間接表示分數順序。

最終代碼如下:

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<memory.h>
struct node{
  int a;
  char name[9];
}p[50];
int main()
{

     int n;
     scanf("%d", &n);
     int flag;
     for(int i = 0; i < n ;i++)
       {
       scanf("%d %s", &p[i].a, p[i].name);
       }
    for(int i = 0; i < n/2; i++)
    {
    flag = 0;
        printf("%s", p[i].name);
        if(p[i].a == 0)
        {
           for(int j = n-1; j >= n/2; j--)
           {
              if(p[j].a == 1&&p[j].a!= 2)
              {
                 printf(" %s\n",p[j].name);
                 p[j].a = 2;
                 flag = 1;
              }
              if(flag == 1)
              break;
           }
        }
        else if(p[i].a == 1)
        {
            for(int j = n-1; j >= n/2; j--)
           {
              if(p[j].a == 0&&p[j].a!= 2)
              {
                 printf(" %s\n",p[j].name);
                 p[j].a = 2;
                 flag = 1;
              }
              if(flag == 1)
              break;
           }
        }
    }
       return 0;
}

技術分享圖片

三、截圖本周題目集的PTA最後排名。

技術分享圖片

五、PTA實驗作業(結構體)