1,求有序數列中某個元素的個數
思想:二分找上下界:
int element_count(int * set, int len, inte)
另一種實現:
int element_count(int * set, int len, inte)
其他方法:
int element_count(int * set, int len, inte)
else
if(set[mid]>e)
max=mid-1
;
else
min = mid+1
; }
return
count;
}
2,素數:
#include#includeint s(int
k)
if(flag)
return1;
return0;
}void
main()
}
判斷函式也可以這樣寫:
int s(intk)
還可以寫成:
int s(intk)
還可以這樣:
int s(intk)
3,刪除乙個字串中存在另乙個字串中的字元:
#include #includesqueeze(
char* s1, const
char*s2)
;
int len1 =strlen(s1);
int len2 =strlen(s2);
for(i=0; i)
}if(flag)
tm[k ++] =s1[i];
}strcpy(s1,tm);
}int
main()
,b[100] = ;
printf(
"請輸入s1:");
scanf("%s
",a);
printf(
"請輸入s2:");
scanf("%s
",b);
squeeze(a,b);
printf(
"刪除後:%s\n
",a);
return0;
}
一次迴圈實現:
squeeze(char* s1, constchar*s2)
;
char sample[128] = ;
for(i = 0 ;i < len2 ; i ++)
sample[s2[i]] = 1
;
for(i = 0 ;i < len1 ;i ++)
tm[k] = 0
; strcpy(s1,tm);
}
4,字元轉換:
#include#includevoid
main()
或者:
#include#includevoid
main()
5,小問題
#include #include"string.h
"int
main()
6,數字根是指對乙個整數,把它的各位數字相加,若其和為一位數,則此和即為其根,若不是一位數字,則把它的各位數字繼續相加,直到其和為乙個正整數為止。例如對於正整數24,因為2+4=6,和為1位數,所以6即為其根。對於39,因為3+9=12,和不為個位數,繼續相加,1+2=3,3為個位數,則為數字的根。要求輸入若干個正整數,以0為結束,輸出每個正整數的根。
unsigned foo( unsigned n )
7,