116: date:2021.1.31
要点: fun函数中,将s1[i]放入s3[j] , s2[i]放入s3[j+1]中,每次循环数组s3中放入2个字符,所以循环变量j的变化为 j = j+2; 所以将for循环中的j = j+1改为j = j+2;
详细代码:
#include <stdio.h>
#include <string.h>
#pragma warning (disable:4996)
void fun( char *s1, char *s2, char *s3)
{
int i,j;
/**********************found***********************/
for(i = 0, j = 0; (s1[i] != '\0') && (s2[i] != '\0'); i++, j = j + 2)
{
s3[j] = s1[i];
s3[j+1] = s2[i];
}
if (s2[i] != '\0')
{
for(; s2[i] != '\0'; i++, j++)
/**********************found***********************/
s3[j] = s2[i];
}
else if (s1[i] != '\0')
{
for(; s1[i] != '\0'; i++, j++)
s3[j] = s1[i];
}
/**********************found***********************/
s3[j] = '\0';
}
void main()
{
char s1[128], s2[128], s3[255];
printf("Please input string1:");
gets(s1);
printf("Please input string2:");
gets(s2);
fun(s1,s2,s3);
printf("string:%s\n", s3);
}
要点: 赋值简化; 取一个数的各个位上的数字;
详细代码如下:
#include<stdio.h>
#pragma warning (disable:4996)
int fun(int n, int result[])
{
/* analyse:
寻找n以内的四玫瑰数:
判断四玫瑰数
for
if
变量k
standard:
int a,b,c,d,i,sum=0;
int count = 0;
for(i = 1000; i <= n; i++)
{
a = i%10;
b = i/10%10;
c = i/100%10;
d = i/1000%10;
sum = a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d;
if(i == sum)
{
result[count++] = i;
}
}
return count;
*/
int i;
int j=0;
for(i = 1000; i <= n; i++)
{
if(i == ((i%10)*(i%10)*(i%10)*(i%10)+(i/10%10)*(i/10%10)*(i/10%10)*(i/10%10)+(i/100%10)*(i/100%10)*(i/100%10)*(i/100%10)+(i/1000%10)*(i/1000%10)*(i/1000%10)*(i/1000%10)))
{
result[j]=i;
j++;
}
}
return j;
}
main( )
{
int result[10], n, i;
void NONO(int result[], int n);
n = fun(9999, result);
for(i=0; i<n; i++) printf("%d\n", result[i]);
NONO(result, n);
}