1、bool型真的好好用啊!
稍微說幾句8,bool就是1和0,然後1是ture 0是false。
沒了
是不是很簡單!
#include<stdio.h>int n,t[1001],i,ans;int main(){ scanf("%d\n",&n); getchar(); for(i=1;i<=n;i++){ scanf("%d ",&ans); t[ans]=1; getchar(); } ans=0; for(i=1;i<=1000;i++) if(t[i]) ans++; printf("%d\n",ans); for(i=1;i<=1000;i++) if(t[i]) printf("%d ",i); return 0;}先說明一下背景:
題目是一個排序,n個數字,篩掉重複數字,最後輸出剩餘數字的個數,並從小到大排序
然後解釋一下代碼:
(一)
第七行我們輸入數字到數組,輸入到數組的下標,有數字的就為1。
這個過程把篩也帶上了,比如你輸入兩個20,兩個此輸入數組下標都是20,所以只保留一個了。
還帶上了排序,因為小的在前面,大的自然就在後面咯。
tql
(二)
16,17行遍歷數組,找出為值為1的數組,輸出他的下標。
感覺這個思路簡直tql!還是得跟神犇好好學。
還有一個就是掃雷
當然不是你附件裡面掃雷啦,devc++還做不出來得用vision studio來做
想學的我附個連結:https://www.bilibili.com/video/BV1x7411X75o?from=search&seid=8677555311976562076
視頻大概一個半小時
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int n,m,i,j; char b[105][105]; int a[105][105]; scanf("%d %d",&n,&m); getchar(); memset(a,0,sizeof(a)); for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ scanf("%c",&b[i][j]); if(b[i][j]=='*'){ a[i][j]=1; } } getchar(); } for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ if(a[i][j]==1){ printf("*"); } else{ printf("%d",a[i+1][j+1]+a[i+1][j-1]+a[i+1][j]+a[i][j+1]+a[i][j-1]+a[i-1][j+1]+a[i-1][j]+a[i-1][j-1]); } } putchar('\n'); } return 0;}就是讓數組*的為1,然後遍歷二維數組進行判斷!
很簡單吧!
超好用的!