日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1012 数字分类 (20 分)(c语言)

發布時間:2024/4/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1012 数字分类 (20 分)(c语言) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給定一系列正整數,請按要求對數字進行分類,并輸出以下 5 個數字:

  • A1??= 能被 5 整除的數字中所有偶數的和;
  • A2??= 將被 5 除后余 1 的數字按給出順序進行交錯求和,即計算?n1??n2?+n3??n4??;
  • A3??= 被 5 除后余 2 的數字的個數;
  • A4??= 被 5 除后余 3 的數字的平均數,精確到小數點后 1 位;
  • A5??= 被 5 除后余 4 的數字中最大數字。

輸入格式:

每個輸入包含 1 個測試用例。每個測試用例先給出一個不超過 1000 的正整數?N,隨后給出?N?個不超過 1000 的待分類的正整數。數字間以空格分隔。

輸出格式:

對給定的?N?個正整數,按題目要求計算?A1?~A5??并在一行中順序輸出。數字間以空格分隔,但行末不得有多余空格。

若其中某一類數字不存在,則在相應位置輸出?N。

輸入樣例 1:

13 1 2 3 4 5 6 7 8 9 10 20 16 18

結尾無空行

輸出樣例 1:

30 11 2 9.7 9

結尾無空行

輸入樣例 2:

8 1 2 4 5 6 7 9 16

結尾無空行

輸出樣例 2:

N 11 2 N 9

結尾無空行

#include <stdio.h> #include<math.h> #pragma warning(disable:4996) int main() {int A1=0, A2=0, A3=0, A4=0, A5=-1;int N,n,i=0,k=0,flag=0;scanf("%d", &N);while ( scanf("%d", &n) == 1) {if (n%10==0&&n>=10) {A1 += n;}if (n % 5 == 1) {A2 += pow(-1, i++) * n;flag = 1;}if (n % 5 == 2) {A3++;}if (n % 5 == 3) {A4 += n;k++;}if (n % 5 == 4 && A5<n) {A5 = n;}}if (A1 != 0) printf("%d", A1); else printf("N");if (flag != 0) printf(" %d", A2); else printf(" N");if (A3 != 0) printf(" %d", A3); else printf(" N");if (A4 != 0) printf(" %.1f", (double)A4/k); else printf(" N");if (A5 != -1) printf(" %d", A5); else printf(" N");return 0; }

這題踩過的坑:

1.注意A2不能單純和0進行比較,因為它是加法和減法混算,所以可以經過計算后等于0,因此需要另設一個標志來記錄是否存在符合要求的數,而不是用A2本身,

2.輸出平均值時,需要強制類型,因為printf只是將后面參數按照需要的格式進行輸出,而我們除時兩個數據類型都是整型,它只會按照整型的規則進行計算,而不會按照浮點型進行計算

還有一種是用數組的

#include<stdio.h> #include<math.h> #pragma warning(disable:4996) int main() {/*1.題目要求的變量N,數組存儲輸入的值;2.循環找符合要求3.輸出*/int N, book[1000];int A1 = 0, A2 = 0, A3 = 0, A5 = 0, i = 0, n = 0,flag=0;double A4 = 0;scanf("%d", &N);for (int cnt = 0; cnt < N; cnt++) {scanf("%d", &book[cnt]);}for (int cnt = 0; cnt < N; cnt++) {if (book[cnt] % 5 == 0 && book[cnt] % 2 == 0) {A1 += book[cnt];}if (book[cnt] % 5 == 1) {A2 += book[cnt] * pow(-1, i);i++;flag++;}if (book[cnt] % 5 == 2) {A3++;}if (book[cnt] % 5 == 3) {A4 += book[cnt];//輸出A時要記得除nn++;}if (book[cnt] % 5 == 4 && A5 < book[cnt]) {A5 = book[cnt];}}if (A1 != 0) {printf("%d", A1);}else {printf("N");}if (flag != 0) {printf(" %d", A2);}else {printf(" N");}if (A3 != 0) {printf(" %d", A3);}else {printf(" N");}if (A4 != 0) {printf(" %.1f", A4 / n);}else {printf(" N");}if (A5 != 0) {printf(" %d", A5);}else {printf(" N");}return 0; }

總結

以上是生活随笔為你收集整理的1012 数字分类 (20 分)(c语言)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。