作业day2020-4-01

作业Day2010-4-1


1.作业标题
打印水仙花数

作业内容
求出0~100000之间的所有“水仙花数”并输出。
“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=13+53+3^3,则153是一个“水仙花数”。

int main(){
	int i = 0;
	for (i = 0; i < 100000; i++){
		//1.求这个数的位数
		int tmp = i;
		int count = 0;
		int sum = 0;
		while (tmp){
			count++;
			tmp /= 10;
		}
		//2.计算立方和
		tmp = i;
		while (tmp){
			sum += pow(tmp % 10, count);
			tmp /= 10;
		}
		//3.比较
		if (i == sum){
			printf("%d ", i);
			//printf("%d", count);
		}
	}
		return 0;
}

2.作业标题
字符串逆序

作业内容
写一个函数,可以逆序一个字符串的内容。

void reverse_string(char *str){
	char *left = str;
	char *right = str+strlen(str) - 1;
	while (left < right){
		char temp = *left;
		*left = *right;
		*right = temp;
		left++;
		right--;
	}
}
int main(){
	char arr[] = "hello";
	reverse_string(arr);
	int i = 0;
	for (i = 0; i < strlen(arr); i++){
		printf("%c", arr[i]);
	}
	return 0;
}

3.作业标题
打印菱形

作业内容
用C语言在屏幕上输出以下图案:
作业day2020-4-01_第1张图片

int main()
{
	int line = 0;
	int i = 0;
	scanf("%d", &line);//7
	//打印上半部分
	for (i = 0; i<line; i++)
	{
		//打印一行
		//打印空格
		int j = 0;
		for (j = 0; j<line - 1 - i; j++)
		{
			printf(" ");
		}
		//打印*
		for (j = 0; j<2 * i + 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}


	//打印下半部分
	for (i = 0; i<line - 1; i++)
	{
		//打印一行
		int j = 0;
		for (j = 0; j <= i; j++)
		{
			printf(" ");
		}
		for (j = 0; j<2 * (line - 1 - i) - 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

你可能感兴趣的:(c语言,#作业题)