1. 程式人生 > >三、PTA實驗作業(數組)

三、PTA實驗作業(數組)

技術分享 item ram 提交 分享圖片 兩個 ott fine 結果

7-2 求最大值及其下標(20 分)

本題要求編寫程序,找出給定的n個數中的最大值及其對應的最小下標(下標從0開始)。

輸入格式:

輸入在第一行中給出一個正整數n(1<n10)。第二行輸入n個整數,用空格分開。

輸出格式:

在一行中輸出最大值及最大值的最小下標,中間用一個空格分開。

1.本題PTA提交列表

技術分享圖片

2.設計思路(包括流程圖),主要描述題目算法

按照數組的順序和後面的數字一次次比較,一直到找出最大的數。

技術分享圖片

最終代碼如下

#include<stdio.h>

int main(){
  int n,i,j;
  scanf("%d",&n);
  
int a[100]; for(i=0;i<n;i++){ scanf("%d",&a[i]); } for(j=0;j<n;j++){ if(a[0]<a[j]){ a[0]=a[j]; i=j; } if(a[0]==a[j]){ a[0]=a[j]; if(i>j){ i=j; } } } printf("%d %d",a[i],i); return 0; }

7-4 查找整數(10 分)

本題要求從輸入的N個整數中查找給定的X。如果找到,輸出X的位置(從0開始數);如果沒有找到,輸出“Not Found”。

輸入格式:

輸入在第一行中給出兩個正整數N(≤20)和X,第二行給出N個整數。數字均不超過長整型,其間以空格分隔。

輸出格式:

在一行中輸出X的位置,或者“Not Found”。

輸入樣例1:

5 7
3 5 7 1 9

輸出樣例1:

2

輸入樣例2:

5 7
3 5 8 1 9

輸出樣例2:

Not Found

1.本題PTA提交列表

技術分享圖片

2.設計思路(包括流程圖),主要描述題目算法

設置一個數組,然後用一個循環將n個數放入數組中,之後再用if來尋找數字,如果超出數組的範圍沒有找到就輸出NOT FOUND

技術分享圖片

最終代碼如下

#include  <stdio.h> 
#define N 20  
int main(void) {  
    long a[N];  
    int i, n, x;  
    scanf("%d%d", &n, &x);  
    for(i = 0; i < n; ++i)  
        scanf("%ld", &a[i]);  
    for(i = 0; i < n; ++i) {  
        if(a[i] == x) {  
            printf("%d\n", i);  
            break;  
        }  
    }  
    if(i >= n)  
        printf("Not Found\n");  
    return 0;  
}  

技術分享圖片

7-3 將數組中的數逆序存放(20 分)

本題要求編寫程序,將給定的n個整數存入數組中,將數組中的這n個數逆序存放,再按順序輸出數組中的元素。

輸入格式:

輸入在第一行中給出一個正整數n(1n10)。第二行輸入n個整數,用空格分開。

輸出格式:

在一行中輸出這n個整數的處理結果,相鄰數字中間用一個空格分開,行末不得有多余空格。

輸入樣例:

4
10 8 1 2

輸出樣例:

2 1 8 10

1.本題PTA提交列表

技術分享圖片

2.設計思路(包括流程圖),主要描述題目算法

技術分享圖片

最終代碼如下

#include <stdio.h>

int main()
{
    int i, n, swap, array[10];
    scanf("%d", &n);
    for (i = 0; i < n; i++)
        scanf("%d", &array[i]);
    for (i = 0; i < n/2; i++)
    {
        swap = array[i];
        array[i] = array[n-1-i];
        array[n-1-i] = swap;
    }
    for (i = 0; i < n-1; i++)
        printf("%d ", array[i]);
    printf("%d\n", array[n-1]);
    return 0;
}

技術分享圖片

最終pta排名

技術分享圖片

三、PTA實驗作業(數組)