您的位置:首页 > 编程语言 > C语言/C++

C语言回顾

2019-06-20 23:48 85 查看

结构体、指针

编译器:VS2017

[code]#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

[code]#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

[code]#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

[code]#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;
}

修改后:

[code]#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);
}
}

按成绩排序:

[code]#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.geek-share.com/detail/2512493360.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: