C语言练习

【C语言】小学数学练习 小学数学练习 1.1【问题描述】 编写一个帮助小学生练习数学的程序,帮助小学生练习100 以内的四种数学运算:加、减、乘、除。 1.2【基本要求】 a) 程序应先询问用户的ID 号(ID 号包括两个大写字母和4 位数字),例如: 请输入用户ID 号:AB1234 程序应对输入的ID 号验证,符合ID 号要求的格式,然后程序提示三种选择: (1)开始测试 (2)检查分数 (3)退出 b) 测试:该程序将给出10 道数学题,例如: 12 * 3 =36 48 + 32 =80 „ 56 / 28 =2 注意.. 阅读详情

C语言打印空心菱形

#include<stdio.h>
void printStars();
void main(){
   
   int totalLevel = 5;
   printStars(totalLevel);
   getchar();
    
}

void printStars(int totalLevel){
    int i,j,k;
    for(i=0;i<=totalLevel;i++){
        for(k=totalLevel-i;k>0;k--){
           printf(" ");
        }       
        for(j=0;j<2*i-1;j++){
          if(i>0 && i<=totalLevel){
              if(j==0 || j==2*i-2){
                  printf("*");
              }else{
                  printf(" ");
              }
          }else{
             printf("*");
          }
        }       
       printf("\n");
    }
    //反向打印金字塔
    for(i=0;i<=totalLevel-1;i++){
        for(k=0;k<=i;k++){
           printf(" ");
        }
        for(j=0;j<(2*(totalLevel-i-1)-1);j++){
            if(i>=0 && i<totalLevel-1){
               if(j==0 || j==(2*(totalLevel-i-1)-2)){
                   printf("*");
               }else{
                   printf(" ");
               }                         
            }else{
              printf("*");
            }         
        }
        printf("\n");
    }
}

在这里插入图片描述

C语言中,char数组的赋值问题。

在这里插入图片描述
在这里插入图片描述
之所以,char a[10]; a=“hello”;错误。个人理解:
就是在声明一个10个字符的空间的数组的时候,a就变成了指向这个空间的指针,之后执行a=“hello”;相当于是一个赋值操作,但是字符数组是不能赋给一个常量的,(指针地址视为常量)。
但是语法char a[10]="hello"符合C语言语法,理由简单来说就是在开辟空间的时候,做了对应字符位置上的赋值操作,视为a[0]='a’等等,且此时的=号并不理解为赋值操作,应该视为初始化操作。
(学习后的理解:char arr[]; arr就是数组的头指针,char *arr=“”;就是定义了一个指针指向了字符数组的头指针,通过指针去初始化一个字符串,不需要指定数组大小,限制较小,是比较合理且高校的初始化操作)

共用体

共用体并不是如它的名字所显示的那样,多个个结构体中有多个相同相同的字段,少量不同的字段,我们把相同的字段提取出来单独弄个结构体存储(这种理解也是愚蠢的 )。
其实,恰恰相反,C语言的共用体,是将不同的字段进行封装,这些不同的字段是共享内存的,并已目前最大的影响的字节数的赋值为主,当进行更多字节赋值的时候,会影响已赋值的数据。
在这里插入图片描述
当我们,new出不同的结构体对象的时候,其共用体之间并不是共享的。只是在当前相同的结构体对象时,是共享的。
实例代码:

#include <stdio.h>
#define TOTAL 2
struct Person{
	char name[20];
	int num;
	char sex;
	char perfession;
	union{
		float score;
		char course[20];
	}sc; //sc是一个共用体的名字
};


void main(){
	int i;
	struct Person persons[TOTAL]; //定义两个结构体对象

	for (i=0;i<TOTAL;i++)
	{
		printf("input info:");
		scanf("%s %d %c %c",persons[i].name,&(persons[i].num),&(persons[i].sex),&(persons[i].perfession));
		if (persons[i].perfession=='s')
		{
			printf("请输入学生的成绩:");
			scanf("%f",&(persons[i].sc.score));
		} 
		else
		{
			printf("请输入老师的课程:");
			scanf("%f",&(persons[i].sc.score));
		}
		fflush(stdin); //清空输入缓冲区
	}

	//输出人员信息
	printf("\nName\t\tNum\tSex\tProfession\tScore / Course\n");
	for(i=0; i<TOTAL; i++){
		if(persons[i].perfession == 's'){ //如果是学生
			printf("%s\t\t%d\t%c\t%c\t\t%f\n", persons[i].name, persons[i].num, persons[i].sex, persons[i].perfession,
				persons[i].sc.score);
		}else{ //如果是老师
			printf("%s\t\t%d\t%c\t%c\t\t%s\n", persons[i].name, persons[i].num, persons[i].sex, persons[i].perfession,
				persons[i].sc.course);
		}
	}
	getchar();
	getchar();
}

练习

编程创建一个 Box 结构体,在其中定义三个成员表示一个立方体的长、宽和高,长宽高可以通过控制台输入。
定义一个函数获取立方体的体积(volume)。
创建一个结构体,打印给定尺寸的立方体的体积。

#include <stdio.h>

struct Box{
   double length;
   double weight;
   double height;
   double volume;
};

double getVolume(struct Box box){

    box.volume = box.length*box.weight*box.height;

    return box.volume;
}

void main(){
    double result;
    struct Box box;
    scanf("%lf",&box.length);
    scanf("%lf",&box.weight);
    scanf("%lf",&box.height);

    
    result =  getVolume(box);
    printf("体积为=%.2f",result);
    getchar();
    getchar();

}

注意:结构体作为函数的形参的时候,默认传入的是值传递。可以修改为“地址传递”。

#include <stdio.h>

struct Box{
	double len;
	double width;
	double height;
	double volumn;
};


//使用地址传递
double getVolumn(struct Box *box){
	/*return (box->len)*(box->width)*(box->height);*/  //这两种调用结构体参数的方式都可以
	return ((*box).len)*((*box).width)*((*box).height);  //这两种调用结构体参数的方式都可以
}

void main(){

	double result;
	struct Box box;
	box.len=3;
	box.width=4;
	box.height=5;

	result=getVolumn(&box);

	printf("体积为%.2f",result);
	getchar();

}

景区门票例子(结构体,地址传递)

在这里插入图片描述

#include <stdio.h>
#include <string.h> //因为要使用字符串操作函数,所以要引入String的包

struct Visitor{
    char name[10]; //char数组,name本身就是数组的头指针
    int age;
    double payment;
};

void pay(struct Visitor *visitor){  //将结构直接利用地址传递
   //判断
   if((*visitor).age>18){
       (*visitor).payment = 20.0;
   }else{
       (*visitor).payment = 0;
   }
}

void main(){
    struct Visitor visitor;
    

    while (1)
    {   
        printf("输入名字=");
        scanf("%s", visitor.name);
        if (!strcmp(visitor.name,"n")) //字符串比较,必须加双引号
        {
            break;
        }
        printf("输入年龄=");
        scanf("%d", &visitor.age);
        
        pay(&visitor);
        printf("应该付=%.2f\n",visitor.payment);
    }

    printf("程序结束");
    getchar();
    getchar();   
}

家庭收支软件实现

非模块化版本实现(直接使用主函数实现,维护性差)

#include <stdio.h>  //输入输出
#include <string.h> //字符串操作

//先利用一个主函数实现
void main(){


    int operation;
    char details[3000]="-----------------------当前收支明细记录-----------------------\n收支\t收支金额\t\t账户金额\t\t说明"; //用于对信息得记录
    double balance=1000.0; //账户得初始余额
    char temp[300]=""; //定义一个暂时得字符串来存储收入,支出得信息
    double money;
    char note[30]="";//定义收入,支出的说明
    char choice = ' '; //单引号之间必须加空格
    int loop=1; //只要没退出就循环下去
    int flag=0; // 用来表示是否至少一笔收入或者支出
    do
    {
        //先打印软件界面
        printf("\n\n--------------------家庭收支记账软件--------------------");
        printf("\n                    1 收支明细");
        printf("\n                    2 登记收入");
        printf("\n                    3 登记支出");
        printf("\n                    4 退出");
        printf("\n请选择(1-4): ");
        scanf("%d",&operation);
        getchar();
        switch (operation)
        {
        case 1:
            if(flag){
              printf("\n%s",details);
            }else{
              printf("没有任何记录!");
            }
            break;
        case 2:
            printf("\n本次收入的金额:");
            scanf("%lf",&money);
            balance+=money; //更新余额
            getchar();//过滤回车符
            printf("\n本次收入的说明:");
            scanf("%s",&note);
            getchar();//过滤回车符
            sprintf(temp,"\n收入\t%.2f\t\t\t%.2f\t\t\t%s",money,balance,note); //将信息拼接为字符串
            strcat(details,temp);//将明细进行拼接
            flag=1;
            break;
        case 3:
            printf("\n本次支出的金额:");
            scanf("%lf",&money);
            getchar();//过滤回车符
            if(money>balance){
                printf("您的余额不足");
                break;
            }else{
              balance-=money; //更新余额
            }
            
            printf("\n本次支出的说明:");
            scanf("%s",&note);
            getchar();//过滤回车符
            sprintf(temp,"\n收入\t%.2f\t\t\t%.2f\t\t\t%s",money,balance,note); //将信息拼接为字符串
            strcat(details,temp);//将明细进行拼接
            flag=1;
            break;
        case 4:
            //loop=0; //当退出软件时,终止循环
            
            do
            {
                printf("\n确认是否退出(Y/N):");
                scanf("%c",&choice);
                getchar();
                if(choice=='y' || choice=='n'){
                    break;
                }
                printf("您的输入有误,请重新输入!");
            } while (1);
            if (choice=='y')
            {
                loop=0;
            }

        default:
            continue;                      
        }
        
    } while (loop);

    printf("您已经退出软件~~");
    getchar();
    
}

家庭收支软件实现,模块化编程(将功能分开,模块化)

#include <stdio.h>
#include <string.h>

struct MyFamilyAccount{
    int flag; //表示至少有一笔收支
    char details[3000];//明细
    double balance; //余额
};

//定义全局常量
int operation;
//char details[3000]="-----------------------当前收支明细记录-----------------------\n收支\t收支金额\t\t账户金额\t\t说明"; //用于对信息得记录
//double balance=1000.0; //账户得初始余额
char temp[300] = ""; //定义一个暂时得字符串来存储收入,支出得信息
double money;
char note[30] = ""; //定义收入,支出的说明
char choice = ' ';  //单引号之间必须加空格
int loop = 1;       //只要没退出就循环下去
//int flag=0; // 用来表示是否至少一笔收入或者支出

void pay(struct MyFamilyAccount *myFamilyAccount){
    printf("\n本次支出的金额:");
    scanf("%lf", &money);
    getchar(); //过滤回车符
    if (money > (*myFamilyAccount).balance)
    {
        printf("您的余额不足");
        return;
    }
    else
    {
        (*myFamilyAccount).balance -= money; //更新余额
    }

    printf("\n本次支出的说明:");
    scanf("%s", &note);
    getchar();                                                             //过滤回车符
    sprintf(temp, "\n收入\t%.2f\t\t\t%.2f\t\t\t%s", money, (*myFamilyAccount).balance, note); //将信息拼接为字符串
    strcat((*myFamilyAccount).details, temp);                                                 //将明细进行拼接
    (*myFamilyAccount).flag = 1;
}

void income(struct MyFamilyAccount *myFamilyAccount){
    printf("\n本次收入的金额:");
    scanf("%lf", &money);
    (*myFamilyAccount).balance += money; //更新余额
    getchar();        //过滤回车符
    printf("\n本次收入的说明:");
    scanf("%s", &note);
    getchar();                                                             //过滤回车符
    sprintf(temp, "\n收入\t%.2f\t\t\t%.2f\t\t\t%s", money, (*myFamilyAccount).balance, note); //将信息拼接为字符串
    strcat((*myFamilyAccount).details, temp);                                                 //将明细进行拼接
    (*myFamilyAccount).flag = 1;
}

void showDetails(struct MyFamilyAccount *myFamilyAccount){
    if ((*myFamilyAccount).flag)
    {
        printf("\n%s", (*myFamilyAccount).details);
    }
    else
    {
        printf("没有任何记录!");
    }
}

void MyExit(){
    //loop=0; //当退出软件时,终止循环
    do
    {
        printf("\n确认是否退出(Y/N):");
        scanf("%c", &choice);
        getchar();
        if (choice == 'y' || choice == 'n')
        {
            break;
        }
        printf("您的输入有误,请重新输入!");
    } while (1);
    if (choice == 'y')
    {
        loop = 0;
    }
}

void mainMenu(struct MyFamilyAccount *myFamilyAccount){
   do
    {
        //先打印软件界面
        printf("\n\n--------------------家庭收支记账软件--------------------");
        printf("\n                    1 收支明细");
        printf("\n                    2 登记收入");
        printf("\n                    3 登记支出");
        printf("\n                    4 退出");
        printf("\n请选择(1-4): ");
        scanf("%d",&operation);
        getchar();
        switch (operation)
        {
        case 1:
            showDetails(myFamilyAccount); //已经是指针了,所以不需要加*
            break;
        case 2:
            income(myFamilyAccount);
            break;
        case 3:
            pay(myFamilyAccount);
            break;
        case 4:
            MyExit();

        default:
            continue;                      
        }
        
    } while (loop);

    printf("您已经退出软件~~");
    getchar();
}

void main(){
    struct MyFamilyAccount myFamilyAccount;
    myFamilyAccount.flag=0;
    myFamilyAccount.balance=1000.0;
    memset(myFamilyAccount.details,3000,0);
    strcpy(myFamilyAccount.details,"-----------------------当前收支明细记录-----------------------\n收支\t收支金额\t\t账户金额\t\t说明");
    mainMenu(&myFamilyAccount);
   // getchar();
}

客户管理系统

#include <stdio.h>
#include <string.h>
#include<stdlib.h>

struct Consumer{
    int id;
    char name[20];
    char gender[2];
    int age;
    char phone[30];
    char email[50];
};

//定义部分全局变量
int loop=1;
struct Consumer consumers[100]; //定义可以存储一百个客户
int ConsumerNum = 0; //定义对客户的计数

//删除客户,客户的id和索引可能不对应,所以需要通过id找到对应的索引来进行删除
int findConsumerIndexById(int id){
    
    for(int i=0;i<ConsumerNum;i++){
        if(consumers[i].id==id){
            return i;
        }
    }
    return -1;
}

//修改客户信息
void UpdateConsumerInfo(){
    int ConsumerId;
    int index;
    char key=' ';
    int flag=1;
    do
    {
        printf("\n---------------修改客户---------------");
        printf("\n请选择待修改客户编号(-1退出):");
        scanf("%d", &ConsumerId);
        getchar();
        if (ConsumerId == -1)
        {
            return;
        }
        index = findConsumerIndexById(ConsumerId); //找到id对应的索引,先判断返回的是否是非零
        if (index!=-1)
        {
            flag=0;
        }else{
            printf("\n\n没有找到对应的客户,请重新输入!");
        }        
    } while (flag);
    //开始修改客户信息(在C99的编译中,这种修改信息的方式是正确的。但是在低版本中的编译器中,却有问题)!!!!!
    // printf("\n姓名(%s):", consumers[index].name);
    // scanf("%s", &consumers[index].name);
    // getchar();
    // printf("\n性别(%s):", consumers[index].gender);
    // scanf("%s", &consumers[index].gender);
    // getchar();
    // printf("\n年龄(%d):", consumers[index].age);
    // scanf("%d", &consumers[index].age);
    // getchar();
    // printf("\n电话(%s):", consumers[index].phone);
    // scanf("%s", &consumers[index].phone);
    // getchar();
    // printf("\n邮箱(%s):", consumers[index].email);
    // scanf("%s", &consumers[index].email);
    // getchar();
    char temp[10] = {'\0'};
    int inttemp=0;
    printf("\n姓名(%s):", consumers[index].name);
    int i = 0;
    while((key = getchar()) != '\n'){
        consumers[index].name[i++] = key;
    }

    printf("\n性别(%s):", consumers[index].gender);
    i = 0;
    while((key = getchar()) != '\n'){
        consumers[index].gender[i++] = key;
    }
    
    printf("\n年龄(%d):", consumers[index].age);
    i = 0;
    if((key = getchar()) != '\n'){
        consumers[index].age = 0;
        consumers[index].age = key - '0';
        while((key = getchar()) != '\n'){
            consumers[index].age = 10 * consumers[index].age + key - '0';
        }
    }

    printf("\n电话(%s):", consumers[index].phone);
    i = 0;
    while((key = getchar()) != '\n'){
        consumers[index].phone[i++] = key;
    }
    
    printf("\n邮箱(%s):", consumers[index].email);
    i = 0;
    while((key = getchar()) != '\n'){
        consumers[index].email[i++] = key;
    }
    printf("\n---------------修改完成---------------");

}




void delConsumer(){
    int ConsumerId;
    int index;
    char key=' ';
    int flag=1;
    do
    {
        printf("\n---------------删除客户---------------");
        printf("\n请选择待删除客户编号(-1退出):");
        scanf("%d", &ConsumerId);
        getchar();
        if (ConsumerId == -1)
        {
            return;
        }
        index = findConsumerIndexById(ConsumerId); //找到id对应的索引,先判断返回的是否是非零
        if (index!=-1)
        {
            flag=0;
        }else{
            printf("\n\n没有找到对应的客户,请重新输入!");
        }        
    } while (flag);
    
    printf("\n确认是否删除(Y/N):");
    scanf("%c",&key);
    getchar();
    if(key=='y'){
        for (int i = index; i < ConsumerNum; i++)
        {
            consumers[i] = consumers[i + 1];
        }
        printf("\n---------------删除完成---------------");
        ConsumerNum--;
    }else{
        printf("\n---------------删除取消---------------");
        return;
    }
          
}


//实现添加客户功能
void addConsumer(){
    printf("\n---------------添加客户---------------");
    //先附加上id编号
    consumers[ConsumerNum].id=ConsumerNum+1;
    printf("\n姓名:");
    scanf("%s",&consumers[ConsumerNum].name);
    getchar();
    printf("\n性别:");
    scanf("%s",&consumers[ConsumerNum].gender);
    getchar();
    printf("\n年龄:");
    scanf("%d",&consumers[ConsumerNum].age);
    getchar();
    printf("\n电话:");
    scanf("%s",&consumers[ConsumerNum].phone);
    getchar();
    printf("\n邮箱:");
    scanf("%s",&consumers[ConsumerNum].email);
    getchar();
    ConsumerNum++;
    printf("\n---------------添加完成---------------");
}

//退出功能,do while
void MyExit(){
    char operition=' ';
    int flag=1;
    do
    {
       printf("\n确认是否退出(Y/N):");
       scanf("%c",&operition);
       getchar();
       if(operition=='y'){
         loop=0;
         return;
       }else if(operition=='n'){
         flag=0;
       }else{
           printf("输入错误,请重新输入");
       }
    } while (flag);
    
}


//展示一个客户的信息
void getConsumerInfo(struct Consumer *consumer){
   printf("\n%d\t%s\t%s\t%d\t%s\t%s",(*consumer).id,(*consumer).name,(*consumer).gender,(*consumer).age,(*consumer).phone,(*consumer).email);
}

void showConsumerInfo(){
    int i;
    printf("\n--------------------客户列表---------------------");
    printf("\n编号\t姓名\t性别\t年龄\t电话\t邮箱");
    for(i=0;i<ConsumerNum;i++){
        getConsumerInfo(&consumers[i]);  //取地址传入
    }
    printf("\n\n--------------------客户列表完成---------------");
}

void mainMenu(){

    int choice;
    
    do
    {
        printf("\n\n--------------客户信息管理软件--------------");
        printf("\n                1 添加客户");
        printf("\n                2 修改客户");
        printf("\n                3 删除客户");
        printf("\n                4 客户列表");
        printf("\n                5 退    出");
        printf("\n               请选择(1-5):");
        scanf("%d",&choice);
        getchar();
        switch (choice)
        {
        case 1:
            addConsumer();
            break;
        case 2:
            UpdateConsumerInfo();
            break;
        case 3:
            delConsumer();
            break;
        case 4:
            showConsumerInfo();
            break;
        case 5:
            MyExit();
            //break;    
        
        default:
            break;
        }
        
        
    } while (loop);

    printf("你已退出软件");
    getchar();
    
}

void main(){
    mainMenu();
}
C语言练习题 C语言练习题 目录整数简单运算四则运算数位输出计算球体重量_%f的使用数位输出_三位数数位拆分求整数各位之和求三角形面积工资发放字符转换成绩分级分段函数1利润计算和差平方与平方和差PM2.5abc组合直角三角形工资计算整数比较1整数比较3成绩分级_分支结构阶梯电价_分支结构练习英文表示数字数字个数统计2--循环条件设置练习分解质因数奖金计算亲和数质数求和 整数简单运算 题目11:整数简单运算 问题描述:编写程序,计算用户输入的两个整数的和、差、乘积(*)和商(/)。 输入格式:输入两个整数,整数之间用空格 阅读详情

相关推荐

关于C语言小练习

C语言小练习前言一、计算两个点的距离二、计算前导后继字符三、大写转小写四、倒置一个三位数五、整除问题六、最大公约数和最小公倍数七、水仙花数八、百元百鸡九、malloc函数十、成绩录入十一、数组求和查找十二、二维数组十三、数组冒泡排序十四、数组元素的删除和插入十五、指针十六、数组和指针1小结 前言 新手入坑,分享一下自己的小成果,有问题请大佬指正,以下的程序都是自己敲的,难免有点小问题,主要是认识C语言,做做小练习。 一、计算两个点的距离 代码如下(示例): int x1,x2,y1,y2; double

Surge_Pitt的博客 312

最优装载问题

#include<stdio.h> struct box{//保存箱子重量及序号 int no; int weight; }z[100]; int main(){ int n,m,i,j,sum=0,cnt=0,load[100]; printf("请输入箱子个数:"); scanf("%d",&n); printf("请输入集装箱重量限制:"); scanf("%d",&m); printf("请输入各箱子重量:"); for(i=.

qq_58529257的博客 236

蓝桥杯练习系统习题解答-基础练习(C语言)

蓝桥杯练习系统习题解答-基础练习 学习网站推荐: C语言网 C语言中文网 C语言教程 题目搜索方式:Ctrl+F—-&amp;amp;amp;amp;gt; 输入题目名称—&amp;amp;amp;amp;gt;定位到解答。 BASIC-1 闰年判断 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 年份是4的倍数而不是100的倍数; 年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个整...

qq_37992321的博客 3443

【排序全家桶】

此程序仅为学习过程中的痕迹,与大家共享,不涉及任何其他问题,谢谢大家!

m0_69773707的博客 155

c语言练习题库网站,c语言练习题库网站_0.doc

c语言练习题库网站_0精品文档2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE28 / NUMPAGES28 c语言练习题库网站 一、填空题1、算法具有以下五个特点、 、 、、2、 判断一个算法的优劣的主要标准 、 、 、 、3、常用的算法图形表示法主要包括、 、4、影...

weixin_31943957的博客 3490

C语言基础练习

一.选择 1.以下说法中正确的是:C A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须放在main()函数中定义 C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分 2. 以下不正确的C语言标识符是:D A.ABC B.abc C.a_bc D.ab.c 3.若x是int型变量,y是float型变量,所用的scanf调用语句格式为:scanf("x=%d.y=%f”,&x,&y);则为了将数(3...

minghaibuai的博客 2279

C语言实现贪心算法——装箱问题

一、代码 //装箱问题; #include&lt;stdio.h&gt; #include&lt;malloc.h&gt; #define V 10 //一个箱子所能装的最大体积; //物品信息; typedef struct { int gnum; //物品编号; int gv; //物品体积; }Goods; //物品链; typedef struct Node...

Future_LL的博客 4534

运算放大器电路中的T型网络:如何用更小电阻实现高增益并降低噪声?

本文深入解析了运算放大器电路中T型反馈网络的设计与应用。该网络通过三个较小阻值电阻的组合,等效实现高增益,有效规避了传统大反馈电阻带来的显著热噪声问题。文章从数学原理、噪声定量分析到实际设计技巧,系统阐述了如何利用T型网络在实现高增益的同时,显著降低电路噪声并改善整体性能。

banana的博客 318

[ C++ ] — 结构体和共用体

一、C++中的结构体 1、声明 声明的过程不分配内存 struct Box{ char name[10]; double length; double width; double height; }; 声明的同时实例化,实例化要分配内存 struct Box{ char name[10]; double length; double width; double height; } book; 2、初始化 初始化方式: 初始化列表 构造函数 (1) 初始化列表 struct Box{

cristiadol的博客 486

104基于深度学习识别是AI生成还是真实图片

的可视化界面,通过点击左侧可以加载要识别的检测对象图片,点击中间的识别按钮,会识别出结果,识别结果在右侧显示,当前识别的图片是真实的图片,非假图片。有兴趣的小伙伴也可以自行扩充数据集,或训练自己的数据集。文本,分别存放了图片路径和对应的标签。文本里面的数据,并将训练好的模型也保存在本地。即可加载训练好的模型,真假图片进行识别。本期给大家介绍的是基于深度学习识别是。代码整体是非常简便的,总共三个。个文件夹分别是真图和。

xcvxvfgdfgfh的博客 2261

永磁同步电机解耦控制实战:从电流反馈到内模解耦的算法演进与选型指南

本文深入探讨了永磁同步电机高性能驱动中的核心挑战——交叉耦合问题,并对比分析了电流反馈解耦和内模解耦两大主流算法的原理、性能与适用场景。文章指出,电流反馈解耦动态响应快但对参数敏感,内模解耦鲁棒性更强但略有滞后,为工程师在不同应用需求下的算法选型提供了清晰的实战指南。

weixin_29039773的博客 264

C语言基础题练习10道

第三个人按下所有编号是3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关掉);依次类推,一共有k个人,问最后有哪些灯开着,输入n和k,输出开着的灯的编号。斐波那契数列指的是这样一个数列0,1,1,2,3,5,8,13,特别指出第0项是0,第1项是第一个1。2个羽毛球队比赛,各出3人,每个人只比一次,甲队为A、B、C三人,乙队为X、Y、Z三人,有人打听比赛名单,A说他不和X比,C说不和。反向思路,输出第a项时,保存第a+1、a+2项的值。...

weixin_43325374的博客 9643

螺丝锁付系统软件设计 C# Winform

视觉螺丝锁付系统软件设计 C# Winform ,这是其中通信子模块设计

weixin_42522973的博客 340

C语言数组练习题目

C语言数组练习题目 1、编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。 #include<stdio.h> main() { int a[10],i,j=0,k=0,l=0; printf("请输入10个整数:"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(i=0;i<10;i++) { if(a[i]>0) ++j; else if(a[i]==0) ++k

Aoian的博客 1万+

手机银行应用架构设计

网上银行借助互联网、移动通信网络等技术向客户提供金融服务,易受到通讯层面的安全威胁,金融机构应从通讯协议、安全认证、通信链路安全等层面,采取措施有效应对相关风险。网上银行系统服务器端提供网上银行应用服务和核心业务处理功能,金融机构应充分利用物理环境、通信网络、计算环境等领域的防护技术,在攻击者和受保护的资源间建立多道严密的安全防线。 网上银行除直接向用户提供金融服务外,也可能与外部机构开展业务合作。在网上银行系统设计、开发、部署和运营过程中,应充分考虑外部机构的系统可能存在的安全风险,并针对各类风险进行有效

银行信息系统应用架构详解 4829

【安卓逆向】python版本 sha源码

免责声明本文内容仅供学习交流使用,严禁用于商业和非法用途。抓包数据、敏感网址以及数据接口已进行脱敏处理。 注:如有引用,请标注文章地址!!!!!!!

Coodekun的博客 817

循环语句练习、c语言练习

循环语句练习: 1)计算n的阶乘: #include <stdio.h> int main() { int i = 0; int ret = 1; printf("计算阶乘:>"); int n = 0; scanf("%d", &n); for(i = 1; i<=n; i++) { ret = ret * i; } printf("结果是:%d",ret); return 0; } 2)计算1!+2!+3!+…

xiaotangyu7dong的博客 3343

PyCharm配置SSH远程解释器第3步时弹框报错:com.google.gson.stream.MalformedJsonException: Expected value at l...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1928

C语言简单练习题

十几道简单的C语言练习题

隼玉的博客 3603

手撕数美风控三板斧:device_fingerprint/device_id/hmac生成逻辑全解析

摘要:逆向分析数美风控核心参数生成机制 本文详细记录了逆向分析数美(Shumei)风控系统中三个关键参数(device_id、device_fingerprint、hmac)的生成逻辑。通过抓包分析和动态调试(使用Frida、IDA等工具)发现:device_id由设备IMEI和Android ID经MD5哈希生成;device_fingerprint融合23项设备与环境信息,并采用SHA-256哈希和动态环境检测;hmac则是参数+指纹+动态盐值的SHA-256签名。文章揭示了数美"设备指纹+动

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1456

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C语言实战例题:必会的 10 个C语言经典练习题,源码分享

这些都是基本的 C 程序,可以帮助刚踏入 C 编程世界的新手。快来试试吧: 1、C 语言编程 – Hello World #include<stdio.h> int main() { printf("Hello world\n"); printf("Linux迷 www.linuxmi.com"); return 0; } 2. C 语言编程 - 执行算术运算 #include<stdio.h> int main() { int a,b; p

致力于C语言C++知识分享! 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C语言代码练习

1.以下代码所需头文件。

WangQYing的博客 1668

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C语言练习之求质数

C语言练习之求质数 前言 质数又称素数,指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为质数。比1大但不是质数的数称为合数。0和1既非质数也非合数。 下面介绍基础的与质数相关的C语言练习。 输出质数 题目要求:输出100以内的所有质数 这题最常见的方式是用两层for循环实现。第一层将digit遍历从3到100的所有奇数(2可以直接输出),第二层循环定义一个除数divisor。其中内循环通常有三种方式:divisor < di

qq_36644196的博客 6463

C语言 打字练习程序

C语言打字练习程序:#include&lt;string.h&gt; #include&lt;stdlib.h&gt; #include&lt;stdio.h&gt; #include&lt;time.h&gt; int main() { char origin[20]; char guess[20]; int length; int flag; int right=0...

小蓝的博客 8717

【C语言】程序练习(二)

本系列的程序练习,是对应本人C语言专栏里面的学习笔记的相关程序,本篇将包含运算符的练习,含有算数运算符、自加自减运算符、关系运算符、逻辑运算符和位运算符、输入输出的函数练习以及分支控制语句的练习。具体的知识点请看C语言学习笔记(上)-优快云博客,对应知识点使用本篇练习效果更好。

争做图书馆扫地僧的小白的博客 2213

Exercism C语言练习项目推荐

Exercism C语言练习项目推荐 项目基础介绍和主要编程语言 Exercism C语言练习项目是一个专注于C语言编程练习的开源项目。该项目旨在帮助开发者通过实践来提高他们的C语言编程技能。项目的主要编程语言是C语言,适合那些希望深入学习C语言或者提升现有C语言编程能力的开发者。 项目核心功能 该项目的核心功能是为开发者提供一系列的C语言编程练习题。这些练习题涵盖了C语言的各个方面,包括但不限于...

gitblog_01091的博客 472
上一篇: o2o项目部署前,阿里云的申请与环境搭建
下一篇: springboot学习01(从搭建到熟悉)
Smallcloudy
博客等级 码龄10年 53粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值