PTA數組實驗


---恢復內容開始---

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

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

輸入格式:

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

輸出格式:

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

1.本題PTA提交列表

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

   先輸入n個數放入數組中,然后先設第一個數為最大的數字,然后再和后面的數字一次次比較

 

最終代碼如下

#include<stdio.h>  
#define N 10  
main()  
{  
    int i,j,n,max,ind,count = 0;  
    scanf("%d",&n);  
  
    int q[N];  
    for (i = 0; i < n; i++)  
    {  
        scanf("%d",&q[i]);  
    }  
    max = q[0];  
    for (j = 0; j < n; j++)  
    {  
        if (max < q[j])  
        {  
            max = q[j];  
            ind = j;  
        }  
        else if (max == q[j])  
            count++;  
          
    }  
    if (count > 1)  
    {  
        ind = j-count;  
    }  
    printf("%d %d", max, ind);  
} 

結果發現

有問題

發現提醒說最大n多個並列輸出0

所以在程序的最后多使用一個if語句修改后得到的代碼如下

#include<stdio.h>  
#define N 10  
main()  
{  
    int i,j,n,max,ind,count = 0;  
    scanf("%d",&n);  
  
    int q[N];  
    for (i = 0; i < n; i++)  
    {  
        scanf("%d",&q[i]);  
    }  
    max = q[0];  
    for (j = 0; j < n; j++)  
    {  
        if (max < q[j])  
        {  
            max = q[j];  
            ind = j;  
        }  
        else if (max == q[j])  
            count++;  
          
    }  
    if (count > 2)  
    {  
        ind = 0;  
    }  
    printf("%d %d", max, ind);  
} 

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>  
int main() 
{  
    int i,n,x;  
    int flag = 0;  
    scanf("%d %d", &n, &x);  
    int a[n];  
    for ( i=0; i<n; i++) {  
        scanf("%d ", &a[i]);  
        if (a[i] == x) {  
            printf("%d", i);  
            flag = 1;  
        }  
    }  
    if (flag == 0) {  
        printf("Not Found");  
    }  
      
    return 0;  
}   

運行如下

7-22 求矩陣各行元素之和(15 分)

本題要求編寫程序,求一個給定的m×n矩陣各行元素之和。

輸入格式:

輸入第一行給出兩個正整數m和n(1m,n6)。隨后m行,每行給出n個整數,其間

以空格分隔。

輸出格式:

每行輸出對應矩陣行元素之和。

輸入樣例:

3 2
6 3
1 -8
3 12

輸出樣例:

9
-7
15

1.本題PTA提交列表

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

本題主要就是設置一個二維的數組

然后將數據放入進去然后相加

 

最終代碼如下

#include <stdio.h>
#define M 10
#define N 10

int main()
{
    int a[M][N];
    int sum[M];
    int m,n,i,j;
    
    scanf("%d %d",&m,&n);
    
    for(i=0;i<m;i++)
    {
        sum[i]=0;
        for(j=0;j<n;j++)
        {
            scanf("%d",&a[i][j]);
            sum[i]+=a[i][j];
        }
    }
    
    for(i=0;i<m;i++)
    {
        printf("%d\n",sum[i]);
    }

    return 0;
}

運行結果

最終pta排名

 

 

---恢復內容結束---


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM