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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

pta(刷题总结)

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pta(刷题总结) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總結題目如下

  • 1.3n+1猜想
  • 2.我要通過
  • 3.成績排名
  • 4,.換個格式輸出
  • 5.素數對猜想
  • 6.數組元素的循環右移動
  • 7.說反話
  • 8.一元多項式求導
  • 9.A+B和C
  • 10.數字分類
  • 11.數素數
  • 12.部分A+B
  • 13.A除以B
  • 14.錘子剪刀布
  • 15.個位數的統計

那么將這幾個分為幾個大類 :

  • 字符串的妙用 :我要通過,說反話 剪刀石頭
  • 結構體的運用:成績排名 德才論
  • 精確到某一位的使用:換個格式輸出? 部分A+B 個位數的統計
  • 末尾空格的處理方式
  • 感覺不錯的: 循環右移動
  • 分析開始嘍!

    1.字符串的使用 (個人不擅長,所以要分析多一點)

    ?面對自讀串的處理的時候,一般分為幾類:字符串的輸入,判斷,移動,找出某一字符的出現次數

    那比如輸入限定的字符串

    //這個是連貫的字符串哈 char arr[100]scanf("%s",arr);len=strlen(arr); //運用到了庫函數#include <string.h>for(i=0;i<len;i++) //這個可以得到某個的字符的那個其實還要注意一點的是在輸入的時候,因為空格也是會影響的 所以getchar()少不了的 其實那個gets(數組名) 和 puts(數組名)的使用也能取得很好地效果while(scanf("%s",word[i++])&&(getchar()!='\n')); //一段話的輸入

    2.結構體的運用

    其實談到結構體,我感覺這個東西真的很有趣味,因為你可以按照自己的想法來定義一個類型,在你的結構體里有不同的類型,整型 浮點 雙精度....只要你想你就可以實現,其實還有一個較好的就是那個在學籍管理系統中,當你設計的了姓名,班級跟隨著你的那個成績來進行排序的時候,我感覺結構體才是yyds,因為你用數組來進行排序的過程中,你要涉及到多個同時都動,然后就寫一大堆,但是結構體不一樣的感覺。

    #include <stdio.h> #define N 100 struct stu{char name[20];char class[100];int sore;}; //加入一個結構體,全局的 int main(void) {int i,n;struct stu s[N]; //說明這是一個結構體數組scanf("%d",&n); //這個是為了輸入學生的個數for(i=0;i<n;i++){ //輸入scanf("%s%s%d",s[i].name,s[i].class,&s[i].sore);} //. 是為了針對某一元素的//來進行比較成績int max = 100; //用開始的值是最大值也是最小值int min = 0;int b1,b2;for(i=0;i<n;i++){if(max < s[i].sore) {max = s[i].sore; //記住下標,為了輸出b1 = i;}if(min > s[i].sore) {min = s[i].sore; //記住下標,為了輸出b2 = i;}}//兩次輸出printf("%s %s\n",s[b1].name,s[b1].class);printf("%s %s\n",s[b2].name, s[b2].class);return 0; } //這個是德才論的比較if (a.class != b.class)return a.class < b.class; //如果考生檔次不同,按照檔次從高到低(1~5)排序else if (a.sum != b.sum)return a.sum > b.sum; //如果考生檔次相同,按照總分從高到低排序else if (a.de_s != b.de_s)return a.de_s > b.de_s; //如果考生分數相同,按照德行分從高到低排序elsereturn strcmp(a.num, b.num) < 0; 也是在此用到了結構體

    ?3.精確到某一位的使用

    對應的題型:水仙花數。。。。

    //方法一,但是對于位數較少的 int num;int t1,t2,t3;scanf("%d",&num);t1=num / 100; //百位t2= (num / 10)% 10; // 十位t3= num %10; //個位 //很多位數都行 x1 是你輸入的數哈 while(x1>0){a=x1%10;x1=x1/10;if(a==y1){n1++; }} //這個是對每一位數字的統計 for (i=0;i<strlen(b);i++){a[b[i]-'0']++;}for (i=0;i<10;i++){if(a[i]!=0){printf("%d:%d\n",i,a[i]);}

    ?4.末尾空格的處理方式(賊妙)

    for (i = 0; i < limit; i++) {if (i == 0) printf("%d", arr[i]);else printf(" %d", arr[i]);} //這個是直接給他另起一個if語句if(count2 % 10 == 1)printf("%d", i); //最后沒有空格else printf(" %d", i);其實還可以用哪個比較的方法 ,就是添加一個 ? 如果是的話執行A,否則執行B

    5. 感覺不錯的: 循環右移動

    ?

    ?

    ?但是我當時用的不是這個方法,我就是傻傻的將其搞到數組里,然后在傻傻的移動

    感覺不錯的代碼

    //這個是說反話的核心代碼,我感覺那個博主真的很nice while(scanf("%s",word[i++])&&(getchar()!='\n'));while(--i)printf("%s ",word[i]);printf("%s",word[0]); //大數相除的核心代碼 scanf("%s %d", s, &b);len = strlen(s);t = (s[0]-'0')/b;if((t!=0 && len>1) || len==1)printf("%d", t);temp = (s[0]-'0')%b;for(i=1; i<len; i++){t = (temp*10+s[i]-'0')/b;printf("%d",t);temp = (temp*10+s[i]-'0')%b;} //這個是部分A+B的那個 //是關于相同的然后多個數字就是如666 888 11111 相同的幾位 這個騷操作真的騷 for(i=1;i<=n1;i++){b=b*10+y1;}for(i=1;i<=n2;i++){c=c*10+y2;}

    ?

    好了,就分享到這吧,有一點用,反正咱也不是特別聰明,多看看大神的騷操作,真的很nice

    ??

    總結

    以上是生活随笔為你收集整理的pta(刷题总结)的全部內容,希望文章能夠幫你解決所遇到的問題。

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