目录
求Sn = a + aa + aaa + aaaa + aaaaa的值,a是一个数字
结构体题目
int main()
{
unsigned long pulArray[] = { 6, 7, 8, 9, 10 };
unsigned long* pulPtr;
pulPtr = pulArray;
*(pulPtr + 3) += 3;
printf("%d, %d\n", *pulPtr, *(pulPtr + 3));
return 0;
}
*(pulPtr + 3) += 3。拿到的是9,9+3=12,所以数组里面9就变成12了。那么打印出来就是6和12。
二级指针保存一级指针地址。
指针 - 指针得到之间的元素个数。
写一个可以逆序字符串内容的函数
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void reverse(char* str)
{
assert(str);
int len = strlen(str);
char* left = str;
char* right = str + len - 1;
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main()
{
char arr[256] = { 0 };
scanf("%s", arr);
gets(arr);
reverse(arr);
printf("%s\n", arr);
return 0;
}
gets函数就是读取一行放到buffer里,也就是一个存放数据的位置。这样输入的内容有空格时也能继续正常逆序。
求Sn = a + aa + aaa + aaaa + aaaaa的值,a是一个数字
int main()
{
int a = 0;
int n = 0;
scanf("%d%d", &a, &n);
int sum = 0;
int i = 0;
int ret = 0;
for (i = 0; i < n; i++)
{
ret = ret * 10 + a;
sum += ret;
}
printf("%d\n", sum);
return 0;
}
a输入一个数字,n表示总共几项相加。比如2和3,也就是2+22+222。
0-10万之间所有的自幂数
#include <stdio.h>
#include <math.h>
int main()
{
for (int i = 0; i <= 100000; i++)
{
int n = 0;
int tmp = 0;
int sum = 0;
while (tmp /= 10)
{
n++;
}
tmp = i;
while (tmp)
{
sum += pow(tmp % 10, n);
tmp /= 10;
}
if (i == sum)
{
printf("%d ", i);
}
}
return 0;
}
打印菱形图案
int main()
{
int line = 0;
scanf("%d", &line);
int i = 0;
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;
}
结束。