逆向学习第13天_全局变量与数组(上)
本帖最后由 Guido 于 2020-10-27 11:29 编辑1.全局变量
在函数体之外定义,任何一个函数都可以对其进行调用,但是要注意声明,同时其也可以放在头文件里。调用时需要在其前面加上extern作为声明
2.静态变量
静态变量与全局变量的存储区域相同,但是静态变量只能被本文件中的函数调用,静态变量声明方法需在前面加关键字static
3.定义一个字符串数组,调用scanf_s(%s)输入一个一串文字:
例如:char s;
printf("请输入一些文字”);
scanf_s("%s",&s,sizeof(s)-1);
循环打印每个数组元素的内容,一真到结尾符号’\0'结束;
比如:如果你输入了"abcdef",就循环6次到结尾符号时结束循环;
//定义一个字符串数组,调用scanf_s(%s)输入一个一串文字:
//例如:char s;
//printf("请输入一些文字”);
//scanf_s("%s",&s, sizeof(s) - 1);
//循环打印每个数组元素的内容,一真到结尾符号’\0'结束;
//比如:如果你输入了"abcdef",就循环6次到结尾符号时结束循环
#include<stdio.h>
int main()
{
char s;
puts("请输入一些文字");
scanf_s("%s", s, sizeof(s) - 1);//sizeof(s)-1 是防止输入的字符串溢出,因为定义了s只能存储31个字符,最后一个是‘\0’
printf("%s", s);
return 0;
}//定义一个字符串数组,调用scanf_s(%s)输入一个一串文字:
//例如:char s;
//printf("请输入一些文字”);
//scanf_s("%s",&s, sizeof(s) - 1);
//循环打印每个数组元素的内容,一真到结尾符号’\0'结束;
//比如:如果你输入了"abcdef",就循环6次到结尾符号时结束循环
#include<stdio.h>
int main()
{
int i = 0;
char s;
puts("请输入一些文字");
scanf_s("%s", s, sizeof(s) - 1);//sizeof(s)-1 是防止输入的字符串溢出,因为定义了s只能存储31个字符,最后一个是‘\0’
/*printf("%s", s);*/
while (s)
{
putchar(s);
}
return 0;
}
4.用多种方法实现数组字符串的倒序输出
//反向打印输入的字符数组
#include<stdio.h>
int main()
{
int i = 0;
char s;
puts("请输入一些文字");
scanf_s("%s", s, sizeof(s) - 1);
while (s) //首先应该计算有多少个字符除外,此时计算的i,包括\0
{
i++;
}
while (i>=0)
{
putchar(s[--i]);
}
return 0;
}
5.在数组中存储一些数据,以-1作为结尾标志,计算出所存储数据的总和以及平均值。//在数组中存储一些数据,以-1作为结尾标志,计算出所存储数据的总和以及平均值。
//输入一个数据,就需要按一次空格
#include<stdio.h>
int main()
{
int s;
int i = -1;
int sum=0;
int ave;
do
{
i++;
scanf_s("%d", &s);
} while (s != -1);//dowhile执行了数据的获取
i = 0;
while (s != -1) //求和
{
sum += s;
}
ave = sum / (i ); //求平均值
printf("总合sum=%d\n平均值ave=%d", sum, ave);
return 0;
}
6.在数组内实现对数据大小的排列。
//对数组内的元素进行排序
#include<stdio.h>
int main()
{
int s = { 22,23,12,32,1,17,8,9,4 };
int i = 0;
int t = 0;
while (i<8) //首先实现相邻的两个数依次比较,然后把最大的值存在最右端 然后在依次循环实现目标
{
if (s > s)
{
t = s;
s = s;
s = t;
}
i++;
}
return 0;
}
//对数组内的元素进行排序
#include<stdio.h>
int main()
{
int s = { 22,23,12,32,1,17,8,9,4 };
int i = 0;
int j = 8;
int t = 0;
for (j;j>1;j--) //这个是外层循环
{
i = 0;
while (i < j) //首先实现相邻的两个数依次比较,然后把最大的值存在最右端 然后在依次循环实现目标
{
if (s > s)
{
t = s;
s = s;
s = t;
}
i++;
}
}
return 0;
}
页:
[1]