#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
int main02(void) {
int scores[10];
scores[0] = 100;
scores[1] = 99;
scores[2] = 98;
scores[3] = 97;
scores[4] = 90;
scores[5] = 88;
scores[6] = 70;
scores[7] = 62;
scores[8] = 60;
scores[9] = 10;
int sum = 0;
int len = sizeof(scores)/ sizeof(int);
for (int i = 0;i<len; i++) {
printf("第%d名学生,成绩:%d\n", i+1, scores[i]);
sum += scores[i];
}
printf("班级的平均成绩为:%.2f\n",(float)sum/len);
printf("%p\n", &scores[0]);
int max = 0;
int fits[10] = {2,5,12,8,12,6,21,7,11,4};
int lenn = sizeof(fits) / sizeof(fits[0]);
for (int i = 0; i < lenn; i++) {
printf("%d,",fits[i]);
if (fits[max] <= fits[i]) {
max = i;
}
}
printf("\n最重的小猪下标为:%d,数值为:%d\n",max,fits[max]);
int temp = 0;
for (int i = 0;i<lenn;i++) {
for (int j = 0; j < lenn-i-1; j++) {
if (fits[j]>=fits[j+1]) {
temp = fits[j+1];
fits[j+1] = fits[j];
fits[j] = temp;
}
}
}
for (int i = 0;i<lenn; i++) {
printf("%d,",fits[i]);
}
int arr2[2][3] = { {1,2,2},{6,8,9} };
int arr3[][3] = { {1,2,2},{6,8,9}, {12,9,6} };
int arr4[4][3] = { {1},{1},{1} };
int arr5[][2] = {1,2,2,3,1,4};
char arr6[] = {'H','e','l','l','o'};
char arr7[] = "Hello";
char arr8[10] = { 'H','e','l','l','o' };
printf("\n字符数组长度为:%d\n",sizeof(arr6));
printf("\n字符数组长度为:%d\n", sizeof(arr7));
printf("%p\n",arr6);
printf("%p\n", &arr6[0]);
printf("arr6:%s\n", arr6);
printf("arr6:%c\n", arr6);
printf("arr7:%s\n", arr7);
printf("arr8:%s\n", arr8);
for (int i = 0; i < sizeof(arr6) / sizeof(arr6[0]);i++) {
printf("%c",arr6[i]);
}
printf("***");
for (int i = 0; i < sizeof(arr7) / sizeof(arr7[0]); i++) {
printf("%c", arr7[i]);
}
printf("***");
for (int i = 0; i < sizeof(arr8) / sizeof(arr8[0]); i++) {
printf("%c", arr8[i]);
}
printf("***");
char c1[100] = {0};
printf("%s\n",c1);
printf("%d\n",time(NULL));
srand((unsigned int)time(NULL));
for (int i = 0; i<100; i++) {
printf("%d\n", rand()%11+50);
}
int double_ball[7];
for (int i = 0;i<6;i++) {
double_ball[i] = rand() % 33 + 1;
for (int j = 0;j<i;j++) {
if (double_ball[j] == double_ball[i]) {
i--;
}
}
}
int blue_ball = rand() % 16 + 1;
double_ball[6] = blue_ball;
for (int i = 0; i <= 6; i++) {
printf("%d\t", double_ball[i]);
}
printf("\n程序结束~");
return 0;
}
函数定义
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
extern int add(int a, int b);
extern int fun01(int a, int b);
void Bubble(int arr[], int len);
int Clac();
void Bubble(int arr[], int len) {
int temp = 0;
for (int i = 0; i < len -1; i++) {
for (int j = 0;j<len-i-1;j++) {
if (arr[j] <= arr[j + 1]) {
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
return;
}
int main04(void) {
int arr[] = {3,4,5,6,7,8,9,2,1};
int len = sizeof(arr)/sizeof(arr[0]);
Bubble(arr, len);
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n*******\n");
int num1 = 22;
int num2 = 9;
int sum = add(num1, num2);
printf("%d+%d=%d\n", num1, num2, sum);
printf("%d,%d\n", num1, num2);
printf("%p,%p\n", &num1, &num2);
fun01(num1, num2);
printf("%d,%d\n", num1, num2);
printf("%p,%p\n", &num1, &num2);
Clac();
return 0;
}
int add(int a, int b) {
return a + b;
}
int fun01(int a, int b) {
a++;
b++;
printf("函数内部:%d,%d\n", a, b);
printf("函数内部:%p,%p\n", &a, &b);
return 0;
}
int Clac() {
int a;
int b;
char ch;
while (1) {
scanf("%d%c%d", &a, &ch, &b );
printf("*******");
printf("输入:%d,%d\n", a,b);
switch(ch){
case '+':
printf("%d+%d=%d\n",a,b,a+b);
break;
case '-':
printf("%d-%d=%d\n", a, b, a-b);
break;
case '*':
printf("%d+%d=%d\n", a, b, a*b);
break;
case '/':
if (!b) {
printf("除数不能为0\n");
continue;
}
printf("%d/%d=%d\n", a, b, a/b);
break;
case 'T':
printf("即将退出...\n");
return 0;
}
}
return 0;
}
自实现:字符串比较
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include "myhead.h"
int main() {
char str1[] = "hello";
char str2[] = "hello";
int flag = my_strcmp(str1, str2);
if (flag ==0)
{
printf("%s 等于 %s",str1, str2);
}
else if (flag>0)
{
printf("%s 大于 %s", str1, str2);
}
else if (flag < 0)
{
printf("%s 小于 %s", str1, str2);
}
return 0;
}
int my_strcmp(const char str1[],const char str2[]) {
int i = 0;
while (str1[i]!='\0' && str2[i] != '\0')
{
if (str1[i] != str2[i])
{
return str1[i] - str2[i];
}
i++;
}
while (str1[i] == '\0' || str2[i] == '\0')
{
return str1[i] - str2[i];
}
return 0;
}
void clac() {
int a;
int b;
char name[10];
while (1) {
scanf("%s %d %d", name, &a, &b);
switch (name[0]) {
case 'a':
printf("%d+%d=%d\n", a, b, a + b);
break;
case 's':
printf("%d-%d=%d\n", a, b, a - b);
break;
case 'm':
printf("%d*%d=%d\n", a, b, a * b);
break;
case 'd':
if (b == 0) {
printf("除数不能为0");
continue;
}
printf("%d/%d=%d\n", a, b, a / b);
break;
}
}
}
指针:空指针 野指针 万能指针
#include <stdio.h>
extern int pointnull();
extern int pointYE();
extern int piontAny();
int main() {
int a = 3;
int * p = &a;
printf("p的16进制:%X\n", p);
printf("p的地址:%p\n", p);
*p = 10;
printf("修改数值:%d\n", a);
printf("修改数值:%d\n", *p);
printf("int指针大小:%d\n", sizeof(p));
printf("int指针大小:%d\n", sizeof(int *));
printf("int指针大小:%d\n", sizeof(int*));
printf("char指针大小:%d\n", sizeof(char*));
printf("short指针大小:%d\n", sizeof(short*));
printf("long指针大小:%d\n", sizeof(long*));
printf("float指针大小:%d\n", sizeof(float*));
printf("double指针大小:%d\n", sizeof(double*));
pointYE();
pointnull();
piontAny();
return 0;
}
int piontAny() {
int a = 8;
void* p3 = &a;
*(int*)p3 = 100;
printf("%d\n", *(int*)p3);
printf("%d\n", a);
char b = 'd';
p3 = &b;
*(char*)p3 = 97;
printf("%d\n", *(char*)p3);
printf("%d\n", b);
int arr[10] = { 0 };
p3 = arr;
*(int*)p3 = 9;
*((int*)p3 + 4) = 200;
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
int pointnull() {
int* p2 = NULL;
printf("%d\n", p2);
return 0;
}
int pointYE() {
int a = 10;
int * p1 = &a;
printf("%p\n", p1);
p1 = 0xff00;
printf("%p\n", p1);
return 0;
}
int main003() {
int a = 7;
void* p = &a;
*(int *)p = 100;
printf("%d\n",*(int *)p);
printf("%d\n", a);
return 0;
}
int main004() {
int arr[10] = {0};
void* p = arr;
*(int*)p = 100;
*((int*)p + 4) = 20;
*((int*)p + 4) = 20;
for (int i = 0; i < 10;i++) {
printf("%d ",arr[i]);
}
return 0;
}