
#include
#include
int getMax(int n);
int getMin(int n);
int range(int n);
static int count=1;
int main(){
int num;
int i,j;
do{
printf("输入黑洞数:\n");
scanf("%d",&num);
}while(num<100||num>=1000);
for(i=0;i<3;i++){
int temp_num=range(num);
if(temp_num==495||temp_num==0){
break;
}
num=temp_num;
count++;
}
}
int getMax(int n){
int digits[3];
digits[0]=n/100;
digits[1]=n/10%10;
digits[2]=n%10;
for(int i=0;i<3;i++){
for(int j=0;j<3-i-1;j++){
if(digits[j]<digits[j+1]){
int temp=digits[j];
digits[j]=digits[j+1];
digits[j+1]=temp;
}
}
}
int max=digits[0]*100+digits[1]*10+digits[2];
return max;
}
int getMin(int n){
int digits[3];
digits[0]=n/100;
digits[1]=n/10%10;
digits[2]=n%10;
for(int i=0;i<3;i++){
for(int j=0;j<3-i-1;j++){
if(digits[j]>digits[j+1]){
int temp=digits[j];
digits[j]=digits[j+1];
digits[j+1]=temp;
}
}
}
int min=digits[0]*100+digits[1]*10+digits[2];
return min;
}
int range(int n){
printf("\n%d:%d-%d=%d\n",count,getMax(n),getMin(n),getMax(n)-getMin(n));
return getMax(n)-getMin(n);
}

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75

#include
#include
char* str_copy(char s1[], char s2[]);
int main() {
char s1[50];
char s2[10];
int count = 0;
printf("输入s1字符串:\n");
scanf("%s", s1);
printf("输入s2字符串:\n");
scanf("%s", s2);
str_copy(s1, s2);
printf("复制后的结果为:\n");
while (s1[count] != '\0') {
printf("%c", s1[count++]);
}
}
char* str_copy(char s1[], char s2[]) {
int count = 0;
int i = 0;
while (s1[i++] != '\0');
while (s2[count] != '\0') {
s1[i-1] = s2[count++];
i++;
}
s1[i+count-2]='\0';
return s1;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35

#include
int f(int n);
int main() {
int num;
printf("输入一个数:");
scanf("%d", &num);
int res = f(num);
printf("result=:%d", res);
}
int f(int n) {
if (n == 1) {
return 1;
}
if (n == 0)
return 0;
return f(n - 1) + f(n - 2);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19

#include
int isPrime(int num) {
if (num <= 1) return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
FILE* file = fopen("zhishu.dat", "w");
int count = 0;
printf("10000以内的质数:\n");
fprintf(file, "10000以内的质数:\n");
for (int i = 2; i <= 10000; i++) {
if (isPrime(i)) {
count++;
printf("%-5d ", i);
fprintf(file, "%-5d ", i);
if (count % 10 == 0) {
printf("\n");
fprintf(file, "\n");
}
}
}
printf("\n总共有%d个质数\n", count);
fprintf(file, "\n总共有%d个质数\n", count);
fclose(file);
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46