date:10.4(Content:Mr.Peng)( C language practice)
void reverse(char* p, int len)
{
char* left = p;
char* right = p + len - 2;
while (left < right)
{
char* temp = left;
*left = *right;//当*left=*right后,*temp已经被改为f了
*right = *temp;//你再*temp赋值给*right时,已经没用了
left++;
right--;
}
}
int main()
{
char arr[] = "abcdef";
int len = sizeof(arr) / sizeof(char);
printf("%d\n", len);
reverse(arr, len);
printf("%s\n", arr);
return 0;
}
局部变量是存放在栈上的,栈又是从高到底存放所以先存i后存arr[]
i | |
arr[9] | |
arr[8] | |
arr[7] | |
arr[6] | |
arr[5] | |
arr[4] | |
arr[3] | |
arr[2] | |
arr[1] | |
arr[0] |
打印菱形
#include<stdio.h>
int main()
{
int line = 0;
scanf("%d", &line);//7
for (int i = 1; i <= line; i++)
{
for (int j = 0; j < line-i; j++)
{
printf(" ");
}
for (int j = 0; j < 2 * i - 1; j++)
{
printf("*");
}
printf("\n");
}
for (int i = 1; i < line; i++)
{
for (int j = 0; j < i; j++)
{
printf(" ");
}
for (int j = 0; j < 2 * (line - i) - 1; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
凶手是谁?
char killer = 0;
for (killer = 'A'; killer <= 'D'; killer++)
{
if ((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3)
{
printf("%c\n", killer);
}
}