華南農業大學C語言程式設計課後習題(第六章)

瑾瑜D發表於2020-12-28

華南農業大學C語言程式設計課後習題(第六章)

18052 插入資料
時間限制:1000MS 記憶體限制:65535K
提交次數:0 通過次數:0

題型: 填空題 語言: GCC
Description
已經有一個按升序排列的陣列,編寫程式輸入一個整數x,把x插入到陣列中,使陣列仍然保持升序。
陣列如下:
2 3 5 7 11 13 17 23 29 31 34 71 79 97 103

#include <stdio.h>
int a[16]={2, 3, 5, 7, 11, 13, 17, 23, 29, 31, 34, 71, 79, 97, 103};
void display()
{
int i;
for(i=0; i<16; i++) printf("%d ", a[i]);
}
int main()
{


display(); 
return 0; 

}

輸入格式
輸入一個整數x

輸出格式
輸出更新後的陣列元素
參考答案

int j,n;
 scanf("%d",&n);
 for(j=14;j>=0;j--)
 {
   if(a[j]>n)
   {
   a[j+1]=a[j];
   a[j]=n;
   if(n>=a[j-1])
   break;
   }
   else
   {
   a[j+1]=n;
   break;
   }
 }

18053 大於平均分
時間限制:1000MS 記憶體限制:65535K
提交次數:0 通過次數:0

題型: 程式設計題 語言: 不限定
Description
輸入10個整數,計算它們的平均值,並統計有多少個數比平均值大。

輸入格式
10個整數

輸出格式
比平均值在的數的個數

輸入樣例
0 1 2 3 4 5 6 7 8 9

輸出樣例
5

#include <stdio.h>
int main()
{
    int a[10],i,sum=0,num=0;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
        sum+=a[i];
    }
    for(i=0;i<10;i++)
    {
        if(a[i]>sum/10)
            num++;
    }
    printf("%d",num);
    return 0;
}

18054 輸出不同的數
時間限制:1000MS 記憶體限制:65535K
提交次數:0 通過次數:0

題型: 程式設計題 語言: G++;GCC;VC
Description
輸入10個整數,輸出其中不同的數,即如果一個數出現了多次,只輸出一次。

輸入格式
輸入10個整數

輸出格式
依次輸出不同的數字(一行一個,從上到下依次輸出先出現的數)

輸入樣例
1 2 1 3 3 2 4 5 5 9

輸出樣例
1
2
3
4
5
9

#include <stdio.h>
int main()
{
    int a[10],i,j,op=1;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
        op=1;
      for(j=0;j<i;j++)
      {
          if(a[j]==a[i])
          {
              op=0;
              break;
          }

      }
      if(op==1)
      printf("%d\n",a[i]);
    }
    return 0;
}

18055 主對角線上的元素之和
時間限制:1000MS 記憶體限制:65535K
提交次數:0 通過次數:0

題型: 程式設計題 語言: 不限定
Description
輸入一個3行4列的整數矩陣,計算並輸出主對角線上的元素之和

輸入格式
3行4列整數矩陣

輸出格式
主對角線上的元素之和

輸入樣例
1 2 3 4
5 6 7 8
9 10 11 12

輸出樣例
18

提示
1,6和11

#include <stdio.h>
int main()
{
 int a[3][4],t,i,j;
 for(i=0;i<3;i++)
 {
   for(j=0;j<4;j++)
   {
    scanf("%d",&a[i][j]);
   }
 }
 printf("%d",a[0][0]+a[1][1]+a[2][2]);
 return 0;
}

1051 找矩陣中的鞍點
時間限制:1000MS 記憶體限制:65536K
提交次數:5713 通過次數:1874

題型: 程式設計題 語言: G++;GCC
Description
由鍵盤輸入一個3*4(3行4列)的矩陣,輸出矩陣中的鞍點(即在矩陣行中最大,列中最小的數)。
若沒有鞍點,輸出“NO”字樣。

輸入樣例
87 90 110 98
70 97 210 65
98 45 120 30

輸出樣例
110

#include <stdio.h>
int main()
{
 int a[3][4],i,j,r,t,op,num;
 for(i=0;i<3;i++)
 {
  for(j=0;j<4;j++)
  scanf("%d",&a[i][j]);
 }
 for(i=0;i<3;i++)
 {
   t=0;
   for(j=1;j<4;j++)
   {
     if(a[i][j]>a[i][t])
     t=j;
   }
   for(r=0,op=1;r<3;r++)
   {
     if(a[r][t]<a[i][t])
     {
     op=0;
     num++;
     break;
     }
   }
   if(op==1)
   printf("%d",a[i][t]);
 }
 if(num==0)
 printf("NO");
 return 0;
}

1145 迴文串
時間限制:1000MS 記憶體限制:65536K
提交次數:4977 通過次數:2922

題型: 程式設計題 語言: G++;GCC
Description
讀入一行字串(不多於80個字元,以回車結束),判斷該字串是否為迴文串(即從左向右拼寫與從

右向左拼寫是一樣的),是則輸出Y,不是則輸出N。

輸入格式
一行字串

輸出格式
是則輸出Y,不是則輸出N

輸入樣例
abba

輸出樣例
Y

提示

input:
abcba

output:
Y


input:
abc

output:
N

#include<stdio.h>
#include<string.h>
int main()
{
 int i,j,t=1;
 char s[81];
 gets(s);
 for(i=0,j=strlen(s)-1;i<strlen(s)/2;i++,j--)
 {
    if(s[i]!=s[j])
    {
     t=0;
     printf("N");
     break;
     }
 }
 if(t==1)
 printf("Y");
 return 0;
}

18057 ASCII碼值之和的差
時間限制:1000MS 記憶體限制:65535K
提交次數:0 通過次數:0

題型: 程式設計題 語言: G++;GCC;VC
Description
輸入兩個字串s1和s2(每個串佔一行,以換行回車符結束),計算兩個字串的所有字元的ASCII碼值之和的差。

輸入格式
兩行字元,第行字元不超過80個字元

輸出格式
ASCII碼值之和的差

輸入樣例
234
123

輸出樣例
3

#include <stdio.h>
int main()
 {
 char s1[81],s2[81];
 int n1=0,n2=0,i;
 for(i=0;(s1[i]=getchar())!='\n';i++)
 n1+=s1[i];
 for(i=0;(s2[i]=getchar())!='\n';i++)
 n2+=s2[i];
 printf("%d",n1-n2);
 return 0;
}

相關文章