一、
作业标题
使用指针打印数组内容
作业内容
写一个函数打印arr数组的内容,不使用数组下标,使用指针。
arr是一个整形一维数组。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int* p = arr;
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
for (i = 0 ;i < sz; i++)
{
printf("%d ", *(p + i));
}
return 0;
}
二、
将一个字符串str的内容颠倒过来,并输出。
数据范围:
1≤x≤10000
输入描述:
输入一个字符串,可以有空格
输出描述:
输出逆序的字符串
示例1
输入
I am a student
输出
tneduts a ma I
示例2
输入
nowcoder
输出
redocwon
void Reverse(int str)
{
char* left = str;
char* right = str + strlen(str) - 1;
char tmp = 0;
while (left < right)
{
tmp = *left;
*left = *right;
*right = tmp;
*left++;
*right--;
}
}
int main()
{
char arr[20] = {0};
printf("请输入字符串:\n");
gets(arr);
Reverse(arr);
printf("逆序后的字符串:\n");
printf("%s", arr);
return 0;
}
三、
作业标题
计算求和
作业内容
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222
int Sn(int x)
{
int m = 0;
int n = x;
int sum = 0;
for (m = 0; m < 5; m++)
{
sum = sum + x;
x = x * 10 + n;
}
return sum;
}
int main()
{
int i = 0;
printf("请输入一个数字(1-9):");
scanf("%d", &i);
printf("%d", Sn(i));
return 0;
}
四、
作业标题
打印水仙花数
作业内容
求出0~100000之间的所有“水仙花数”并输出。
“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,
如:153=1^3+5^3+3^3,则153是一个“水仙花数”。
int main()
{
int i = 0;
int tmp = 0;
for (i = 0; i <= 100000; i++)
{
tmp = i;
int count = 0;
//计算i是几位数
while (tmp)
{
count++;
tmp = tmp / 10;
}
tmp = i;
int sum = 0;
//计算sum
while (tmp)
{
sum=sum+ pow(tmp % 10, count);
tmp = tmp / 10;
}
//判断是不是水仙花数
if (sum == i)
{
printf("%d ", i);
}
}
return 0;
}
五、
作业标题
打印菱形
作业内容
用C语言在屏幕上输出以下图案:
int main()
{
int i = 0;
int j = 0;
int k = 0;
//先打印前七行
for (i = 1; i <= 7; i++)
{
for (j = 1; j <= 7 - i; j++)
{
printf(" ");
}
for (k = 1; k <= 2*i-1; k++)
{
printf("*");
}
printf("\n");
}
//再打印后六行
for (i = 1; i <= 6; i++)
{
for (j = 1; j <= i; j++)
{
printf(" ");
}
for (k = 1; k <= 13 - 2 * i; k++)
{
printf("*");
}
printf("\n");
}
return 0;
}