学C语言的第四天的15个练习
#include <stdio.h>
#define OK 0;
#include <windows.h>
#include <time.h>
#include <string.h>
int main31() {
//打印数组的变量名时为地址
int a;
printf("%#X\n", &a);
printf("%u\n",a);
printf("%u\n", &a);
printf("%u\n", &a); //&a+4
printf("%u\n", a+1);
printf("%u\n", (&a)+1);
printf("%u\n", (&a)+1);
return 0;
}
int main32() {
//求数组的最大值
int a[] = { 1,3,5,12,45,36,37,12,85,74,95 };
int max = a;
for (int b=1;b <=sizeof(a)/sizeof(a);b++)
{
if (a>max)
{
max = a;
}
}
printf("%d\n", max);
return OK;
}
//数组的逆置
int main33() {
int arr[] = {1,2,3,4,5,6,7,8,9,0};
int i = 0;//数组开头下标
int j = (sizeof(arr) / sizeof(arr)) - 1;//数组下标为实际长度减一
int tmp = 0;//临时存放,用于交换数据
while (i<j)
{
tmp = arr;
arr = arr;
arr = tmp;
i++;
j--;
}
int length=sizeof(arr) / sizeof(arr);
for (int a=0;a<length;a++)
{
printf("%d", arr);
if (a!=sizeof(arr)/sizeof(arr)-1)
{
printf("%s", ",");
}
}
return OK;
}
//二维数组
int main34() {
int a;//定义一个三行四列的二维数组
int j = 0;
printf("%d\n", sizeof(a));
printf("%d\n", sizeof(a));
for (int i = 0; i <3; i++)
{
for (int b=0;b<4;b++)
{
srand(time(NULL));
a = rand();
Sleep(1000);//因为执行速度太快所以睡1秒,反正随机数相同
j++;
printf("j=%d%d\n",j, a);
}
}
printf("%d\n",sizeof(a)/sizeof(a));
return OK;
}
//二维数组
int main35() {
int a = {
{1,2,3,4},//第一行
{5,6,7,8},//第二行
{9,10,11,12} };//第三行
for (int i=0;i<3;i++)
{
for (int j=0;j<4;j++)
{
printf("%d\n", a);
}
}
int c[] = {
{1,2,5,7,9},
{5,6,7,2,8},
{1,54,7,8,9},
};
int d = { {1,2,3,4} };//如果只给部分元素初始化,那么其他元素为零
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d\n", d);
}
}
//int a[][] = {};行下标可以为空,列下标不能为空
return OK;
}
//求数组的行,与列
int main36() {
int a = { {1,2,4,5,6} };
printf("%d\n", sizeof(a));//20 一行的总字节数
printf("%d\n", sizeof(a));//80 数组的总字节数
printf("%d\n", sizeof(a));//4int的字节大小
//总行数
int line= sizeof(a) / sizeof(a);
printf("%d\n", line);
//总列数
int row = sizeof(a) / sizeof(a);
printf("%d\n", row);
return OK;
}
int main37() {
int a = { {1,2,4,5,6} };
printf("a=%u\n", a);
printf("a=%u\n", a);
printf("a=%u\n", a);
printf("a + 1=%u\n", a + 1);
printf("a + 1=%u\n", a + 1);
printf("a + 1=%u\n", a + 1);
printf("&a=%u\n", &a);
printf("&a=%u\n", &a);
printf("&a=%u\n", &a);
printf("&a+1=%u\n", &a+1);
printf("&a+1=%u\n", &a+1);
printf("&a+1=%u\n", &a+1);
printf("&a+1=%u\n", &a+1);
printf("&a + 1=%u\n", &a + 1);
/*
a=14088300
a=14088300
a=1
a + 1=14088320
a + 1=14088304
a + 1=2
&a=14088300
&a=14088300
&a=14088300
&a+1=14088380
&a+1=14088380
&a+1=14088320
&a+1=14088304
&a + 1=14088380
*/
printf("a=%X\n", a);
printf("a=%X\n", a);
printf("a + 1=%X\n", a + 1);
printf("a + 1=%X\n", a + 1);
printf("&a=%X\n", &a);
printf("&a=%X\n", &a);
printf("&a=%X\n", &a);
printf("&a+1=%X\n", &a + 1);
printf("&a+1=%X\n", &a + 1);
printf("&a+1=%X\n", &a + 1);
printf("&a+1=%X\n", &a + 1);
printf("&a + 1=%X\n", &a + 1);
/*
a=D6F86C
a=D6F86C
a + 1=D6F880
a + 1=D6F870
&a=D6F86C
&a=D6F86C
&a=D6F86C
&a+1=D6F8BC
&a+1=D6F8BC
&a+1=D6F880
&a+1=D6F870
&a + 1=D6F8BC
*/
return OK;
}
//求平均数,不及格人数,总分数
int main38() {
float cores =
{
{90,65,40,55},
{40,90,80,70},
{60,25,47,88}
}
;
float sum = 0.0;//总分数
int numer = {0};//不及格人数
float ave = { 0 };//平均数
int k = 0;
printf("%d\n", sizeof(cores) / sizeof(cores));
printf("%d\n", sizeof(cores) / sizeof(cores));
for (int i=0;i< sizeof(cores) / sizeof(cores);i++)
{
sum = 0.0;
for (int j = 0; j < sizeof(cores) / sizeof(cores); j++)
{
if (cores<60)
{
numer++;
}
sum += cores;
}
printf("%s%f\n","总成绩", sum);
ave= sum / (sizeof(cores) / sizeof(cores));
printf("%f\n", ave);
printf("%d\n", numer);
k++;
}
return OK;
}
int main40() {
char ch;
gets(ch); //会读取空格,
printf("%s\n", ch);
return OK;
}
int main39() {
char ch;
fgets(ch,sizeof(ch),stdin );//会把回车键\n读取
printf("%s\n", ch);
return OK;
}
int main41() {
char buf="starry8";
int strl= strlen(buf)-1;
buf = '\0';
printf("%d\n",strl);
printf("%s\n", buf);//starry
buf = 0;
printf("%s\n", buf);//starr
return OK;
}
int main42() {
char ch = "starry";
int i = 0;
/*
strlen(ch);
while (ch!='\0')
{
i++;
}
*/
printf("%d\n", i);//6
int num=strlen(ch);
printf("%d\n", num);//6
return OK;
}
int main43() {
char luntan = "夜星空";
//puts(luntan);//把夜星空输出到控制台
fputs(luntan, stdout);
return OK;
}
int main44() {
char luntan = "夜星空";
int i = 0;
while (luntan!='\0')
{
i++;
}
printf("%d\n",i);//一个中文占两个字节//6
while (i!=0)
{
luntan = '\0';
i -= 2;
fputs(luntan, stdout);
printf("\n");
/*
夜星空
夜星
夜
*/
}
return OK;
}
int main45() {
//产生随机数
srand(time(NULL));//因为时间每时每刻都在变,所以选择时间当随机种子
int rdnumer = rand();
printf("%d\n", rdnumer);
return OK;
}
extern int my_sum(int a, int b);
extern int my_sub(int a, int b);
externint my_mul(int a, int b);
extern int my_div(int a, int b);
extern int my_get_max(int a, int b);
extern int my_get_min(int a, int b);
int main46() {
printf("%d\n", my_sum(98, 100));//求和
printf("%d\n", my_sub(200, 50));//减法
printf("%d\n", my_mul(50, 40));//乘法
printf("%d\n", my_div(10, 5));//除法
printf("%d\n", my_get_max(100, 60));//求最大值
printf("%d\n", my_get_min(40, 20));//求最小值
return OK;
}
int my_sum(int a, int b) {
return a + b;
}
int my_sub(int a, int b) {
return a - b;
}
int my_mul(int a, int b) {
return a * b;
}
int my_div(int a, int b) {
return a / b;
}
int my_get_max(int a, int b) {
return a > b?a:b;
}
int my_get_min(int a, int b) {
return a < b?a:b;
}
可以找个OJ平台用C练下算法啥的,单纯学语法并没有什么作用,我现在做CTF题RE里限制我的一直是算法。 希望楼主继续坚持 大神14天就学怎么多 谢谢分享 谢谢分享 谢谢分享 不知道来晚了没有 感谢楼主 感谢楼主