C语言回顾

结构体、指针

编译器:VS2017

#include<stdio.h>
#include<string.h>
struct Student
{
	int age;
	float score;
	char sex;
	char name[100];
};
void InputStudent(struct Student *stu);
int main(void) {
	struct Student st = { 18,99.9,'F',"你好"};
	struct Student *st1 = &st;
	st1->score = 99.9;
	st1->sex = 'M';
	strcpy_s(st1->name, 100,"我好");
	InputStudent(&st);
	printf("%d %f %c %s\n",st.age,st.score,st.sex,st.name);
	printf("%d %f %c %s\n", st1->age,st1->score,st1->sex,st1->name);
	printf("%s %d %s %d \n","st1:", sizeof(st1),"st:",sizeof(st));
	system("pause");
	return 0;
}	
void InputStudent(struct Student *stu) {
	(*stu).age = 10;
	strcpy_s(stu->name, 100, "不好");
	(*stu).sex = 'F';
	stu->score = 66.6;
}

输出:

 

冒泡排序

编译器:VS2017

#include<stdio.h>

void sort(int * pArr, int len) {
	int i, j, c;
	for (i = 0; i<len -1; ++i) {
		for (j = 0; j<len - 1 - i; ++j) {
			if (pArr[j + 1] < pArr[j]) {
				c = pArr[j + 1];
				pArr[j + 1] = pArr[j];
				pArr[j] = c;
			}
		}
	}
}
int main(void) {
	int a[6] = { 10,2,12,-8,5,0};
	int i = 0;
	sort(a, 6);
	for (i = 0; i < 6; ++i) {
		printf("%d ,", a[i]);
	}
	printf("\n");
	system("pause");
	return 0;
}

编译器:VC++6.0

#include<stdio.h>
#include<malloc.h>
void output(int *arr,int len);
void sort(int *arr,int len);
int main(void){
	int a[6]={10,2,-9,54,2,0};
	printf("原数组是:");
	output(a,6);
	sort(a,6);
	printf("冒泡排序后的数组是:");
	output(a,6);
	return 0;
}
void sort(int *arr,int len){
	int c;
	for(int i=0;i<len-1;i++){
		for(int j=0;j<len-1-i;j++){
			if(arr[j]>arr[j+1]){
				c=arr[j+1];
				arr[j+1]=arr[j];
				arr[j]=c;
			}
		}
	}
}
void output(int *arr,int len){
	for(int i=0;i<len;i++){
		if(i==len-1){
			printf("%d \n",arr[i]);
		}
		else{
			printf("%d ,",arr[i]);
		}
	}
}

学生管理系统

编译器VC++6.0

#include<stdio.h>
#include<malloc.h>
struct Student {
	int age;
	float score;
	char name[100];
};
int main(void) {

	int len;
	struct Student *pArr;
	int i;
	printf("请输入学生的个数:\n");
	printf("len=");
	scanf("%d", &len);
	printf("%s %d\n", "学生的人数为:", len);
	pArr = (struct Student *)malloc(len * sizeof(struct Student));
	for (i = 0; i < len; ++i) {
		printf("请输入第%d个学生信息:\n", i + 1);
		printf("age=");
		scanf("%d", &pArr[i].age);
		printf("score=");
		scanf("%f", &pArr[i].score);
		printf("name=");
		scanf("%s", pArr[i].name);
	}
	for (i = 0; i < len; i++) {
		printf("第%d个学生的信息是:", i + 1);
		printf("age=%d ,", pArr[i].age);
		printf("score=%f ,", pArr[i].score);
		printf("name=%s \n", pArr[i].name);
	}
	return 0;
}

修改后:

#include<stdio.h>
#include<malloc.h>
struct Student {
	int age;
	float score;
	char name[100];
};
void input(struct Student *pArr,int len);
void outprint(struct Student *pArr,int len);
int main(void) {

	int len;
	struct Student *pArr;
	printf("请输入学生的个数:\n");
	printf("len=");
	scanf("%d", &len);
	printf("%s %d\n", "学生的人数为:", len);
	pArr = (struct Student *)malloc(len * sizeof(struct Student));
	input(pArr,len);
	outprint(pArr,len);
	return 0;
}
void input(struct Student *pArr,int len){
	for (int i = 0; i < len; ++i) {
		printf("请输入第%d个学生信息:\n", i + 1);
		printf("age=");
		scanf("%d", &pArr[i].age);
		printf("score=");
		scanf("%f", &pArr[i].score);
		printf("name=");
		scanf("%s", pArr[i].name);
	}
}
void outprint(struct Student *pArr,int len){
	for (int i = 0; i < len; i++) {
			printf("第%d个学生的信息是:", i + 1);
			printf("age=%d ,", pArr[i].age);
			printf("score=%f ,", pArr[i].score);
			printf("name=%s \n", pArr[i].name);
		}
}

按成绩排序:

#include<stdio.h>
#include<malloc.h>
struct Student {
	int age;
	float score;
	char name[100];
};
void input(struct Student *pArr,int len);
void outprint(struct Student *pArr,int len);
void sortStudentByScore(struct Student *pArr,int len);
int main(void) {

	int len;
	struct Student *pArr;
	printf("请输入学生的个数:\n");
	printf("len=");
	scanf("%d", &len);
	printf("%s %d\n", "学生的人数为:", len);
	pArr = (struct Student *)malloc(len * sizeof(struct Student));
	input(pArr,len);
	sortStudentByScore(pArr,len);
	outprint(pArr,len);
	printf("%d",pArr[1].age);
	return 0;
}
void input(struct Student *pArr,int len){
	for (int i = 0; i < len; ++i) {
		printf("请输入第%d个学生信息:\n", i + 1);
		printf("age=");
		scanf("%d", &pArr[i].age);
		printf("score=");
		scanf("%f", &pArr[i].score);
		printf("name=");
		scanf("%s", pArr[i].name);
	}
}
void sortStudentByScore(struct Student *pArr,int len){
	struct Student temp;
	for(int i=0;i<len-1;i++){
		for(int j=0;j<len-1-i;j++){
			if(pArr[j].score>pArr[j+1].score){
				temp=pArr[j+1];
				pArr[j+1]=pArr[j];
				pArr[j]=temp;

			}
		}
	}
}
void outprint(struct Student *pArr,int len){
	for (int i = 0; i < len; i++) {
			printf("第%d个学生的信息是:", i + 1);
			printf("age=%d ,", pArr[i].age);
			printf("score=%f ,", pArr[i].score);
			printf("name=%s \n", pArr[i].name);
		}
}

 原码:简单易懂,加减运算复杂,存在加减乘除四种运算,增加了CPU的复杂度,零的表示不唯一

反码:反码运算不便,也没有在计算机应用

移码:移码表示数值平移n位,n称为移码量

移码主要用于浮点数的阶码的存储

补码:参考:https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

posted @ 2019-06-20 23:48  yorkmass  阅读(184)  评论(0)    收藏  举报