C语言:求n(n<10000)以内的所有四叶玫瑰数。-将字符串s1和s2合并形成新的字符串s3,先取出1的第一个字符放入3,再取出2的第一个字符放入3,

//函数fun功能:求n(n<10000)以内的所有四叶玫瑰数并逐个存放到result所指数组中,个数作为返回值。如果一个4位整数等于其各个位数字的4次方之和,则称该数为函数返回值。

 1 #include<stdio.h>
 2 #pragma warning (disable:4996)
 3 int fun(int n, int result[])
 4 { 
 5     int sum=0,j=0;
 6     int a, b, c, d;
 7     for (int i = 1000; i < n; i++)
 8     {
 9         a = i / 1000;
10         b = (i % 1000) / 100;
11         c = (i % 100) / 10;
12         d = i % 10;
13         if ((a*a*a*a + b * b*b*b + c * c*c*c + d * d*d*d) == i)
14         {
15             result[j++] = i;
16         }
17     }
18     return j;
19 }
20 main( )
21 {
22     int result[10], n, i;
23     void NONO(int result[], int n);
24     n = fun(9999, result);
25     for(i=0; i<n; i++) printf("%d
", result[i]);
26     NONO(result, n);
27 }
28 
29 void NONO(int result[], int n)
30 {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
31     FILE *fp ;
32     int i;
33 
34     fp = fopen("out.dat","w") ;
35     fprintf(fp, "%d
", n);
36     for(i=0; i<n; i++) fprintf(fp, "%d
", result[i]);
37     fclose(fp);
38 }

//函数fun将字符串s1和s2合并形成新的字符串s3,先取出1的第一个字符放入3,再取出2的第一个字符放入3,中,以此类推,若1和2的长度不等,较长的字符顺序放在新生成的3后。

 1 #include <stdio.h> 
 2 #include <string.h> 
 3 #pragma warning (disable:4996)
 4 void fun( char *s1, char *s2, char *s3)
 5 {   int i,j;
 6 /**********************found***********************/
 7     for(i = 0, j = 0; (s1[i] != '') && (s2[i] != ''); i++, j = j + 2)  //j自增2
 8     {       s3[j] = s1[i];   
 9         s3[j+1] = s2[i];   
10     }    
11     if (s2[i] != '')  
12     {       for(; s2[i] != ''; i++, j++)   
13 /**********************found***********************/
14              s3[j] = s2[i];  
15     }   
16     else if (s1[i] != '')  
17     {   for(; s1[i] != ''; i++, j++)       
18             s3[j] = s1[i];
19     }
20 /**********************found***********************/
21     s3[j] = '';
22 }
23 void main() 
24 {      char s1[128], s2[128], s3[255];  
25     printf("Please input string1:"); 
26     gets(s1);   
27     printf("Please input string2:");  
28     gets(s2);    
29     fun(s1,s2,s3);
30     printf("string:%s
", s3);   
31 } 
原文地址:https://www.cnblogs.com/ming-4/p/10494889.html