有大佬给看看吗?这个程序没有错误,但是不能运行

#include
#include
#include
#include
#include"windows.h"
//***********************************************************************************
int initial_room(); //初始化80个房间信息
int welcome(); //验证用户登陆,登陆成功显示欢迎信息
int enter();
int check_in();
int check_out();
int inquire();
int diancai1();
int i=0;
int caijia=0;
int pay=0;
typedef int ElemType;
//***********************************************************************************
struct Room
{
int number;
int rank;
int price;
int state;
};
struct Customer
{
char name[13],ID[19];
int room_number;
int pay;
int change;
int day;
char caiming;
int caijia;
};

int set_name(struct Customer *cs, char *n)
{
strcpy(cs->name,n);
return 14;
}
int set_ID(struct Customer *cs, char *p)
{
strcpy(cs->ID,p);
return 13;
}
int set_room_number(struct Customer *cs, int n)
{
cs->room_number=n;
return 12;
}
int set_day(struct Customer *cs, int d)
{
cs->day=d;
return 11;
}

char *get_name(struct Customer *cs)
{
return cs->name;
}
char *get_ID(struct Customer *cs)
{
return cs->ID;
}
int get_room_number(struct Customer *cs)
{
return cs->room_number;
}
int get_day(struct Customer *cs)
{
return cs->day;
}

//***********************************************************************************
struct Room room[60];
struct Customer customer[60];
//diancai
struct cai /*cai结构体 实现对菜品 已点份数、名称、原材料 的记录
/
{
int fenshu;
char name[50];
int use;
int price;
};
struct List /*该线性表实现对菜品原材料的剩余量的记录,线性表【i】对应菜品的点餐菜单编码*/
{

ElemType* list;
int size;
int MaxSize;
};
/*以下为线性表的函数*/
void InitList(struct List* L,int ms)

{
if(ms<=0){printf("ms 值非法!\n");exit(1);}
L->MaxSize=ms;
L->list=(int*)malloc(ms*sizeof(ElemType*));
if(!L->list)
{
printf("动态存储分配失败!");
exit(1);
}
L->size=0;
}
void againMalloc(struct List L)
{
ElemType *p=(int
)realloc(L->list,2*L->MaxSize*sizeof(ElemType));
if(!p){
printf("分配存储空间失败!");
exit(1);
}
L->list=p;
L->MaxSize=2*L->MaxSize;
}
void InsertLastList(struct List L,ElemType x)
{
if(L->size==L->MaxSize)
againMalloc(L);
L->list[L->size]=x;
L->size++;
}
/
表格函数*/
int cddayin(struct cai a[])
{
int i=0,j=0;
for(i=0;i {if(a[i].fenshu>0) j++;}
if(j!=0)
{
printf("已点菜/酒品编号 已点菜品名称 已点份数/瓶数 价格\n");
for(i=0;i if(a[i].fenshu>0)

{printf(" %5d %10s%14d %d¥ \n",i,a[i].name,a[i].fenshu,a[i].fenshu*a[i].price);
caijia=caijia+a[i].fenshu*a[i].price;
}
printf(" 您好,您点餐价格合计=%d¥\n",caijia);
}
return caijia;
if(j==0)
printf("顾客尚未点餐,无法进行菜单打印!\n");
}
void ycliao(struct List *yuan,struct cai a[])
{
int i=1,p=0,k=0,num;
for(i=0;i {
do{
p=a[i].use%100;
yuan->list[p]=yuan->list[p]-a[i].fenshu;
a[i].use=a[i].use/100;
}while(a[i].use!=0);
}
printf("请输入房间号:");
scanf("%d",&num);
if(num=101&&102&&103&&104&&105){
printf("|-------------------------------------------------------|--------------------|\n");
printf("|------------------原材料余量---------------------------|-----酒品余量-------|\n");
printf("|-------------------------------------------------------|--------------------|\n");
printf("| 10.鸡肉=%3d 11.猪肉=%3d 12.鱼肉=%3d | 50.雪花啤酒=%3d |\n",yuan->list[10],yuan->list[11],yuan->list[12],yuan->list[50]);
printf("| 13.黄瓜=%3d 14.土豆=%3d 15.豆腐=%3d | 51.燕京啤酒=%3d |\n",yuan->list[13],yuan->list[14],yuan->list[15],yuan->list[51]);
printf("| 16.茄子=%3d 17.青椒=%3d 18.牛肉=%3d | 52.二锅头=%3d |\n",yuan->list[16],yuan->list[17],yuan->list[18],yuan->list[52]);
printf("| 19.大葱=%3d 20.鲜鸭血=%3d 21.花生=%3d | |\n",yuan->list[19],yuan->list[20],yuan->list[21]);
printf("| 22.花椒=%3d 23.酱=%3d 24.胡萝卜=%3d | |\n",yuan->list[22],yuan->list[23],yuan->list[24]);
printf("| 25.辣椒=%3d 26.芹菜=%3d 27.豆皮=%3d | |\n",yuan->list[25],yuan->list[26],yuan->list[27]);
printf("|-------------------------------------------------------|--------------------|\n");
printf("|-------------------------------------------------------|--------------------|\n");
}}
void diancai(struct cai a[],struct Customer *cs )
{

int p=0,wep=0;
/*printf("请输入房间号\n");
scanf("%d",num);
for(i=0;i<60;i++)

if(cs->room[n].number==num)

/
do{
printf(" |----------------------------------------------|-------------------|\n");
printf(" |----------菜品(输入-1确认并结束点餐)----------|-------酒品--------|\n");
printf(" |----------------------------------------------|-------------------|\n");
printf(" | 1.红烧狮子头 2. 飘香桂鱼 3.京酱肉丝 21.长城干红 |\n");
printf(" | 4.爆炒竹鸡 5.水煮鱼 6.日本豆腐 | 22.喜力啤酒 |\n");
printf(" | 7.夫妻肺片 8.拍黄瓜 9.莲子羹 | 23.人头马 |\n");
printf(" |----------------------------------------------|-------------------|\n");
printf(" |----------------------------------------------|-------------------|\n");
scanf("%d",&p);
system("CLS");
if(p>=1&&p<=9)
{
printf(" |------------------------------------------|\n");
printf(" |------------------份数--------------------|\n");
printf(" |------------------------------------------|\n");
printf(" | 1.一份 2.两份 |\n");
printf(" | 3.三份 4.其他请直接输入 |\n");

printf(" |------------------------------------------|\n");
printf(" |------------------------------------------|\n");
scanf("%d",&wep);
if(wep>50)
{system("CLS");printf("您输入的值异常或过大,请您检查输入的值!\n");continue;}/
防止误输入*/
else if(wep<=50)
{a[p].fenshu+=wep;
system("CLS");
}
}
else if(p>=21&&p<=23)
{

    printf("           |--------------------------------------------------------|\n");
    printf("           |-------------------------酒品数量-----------------------|\n");
    printf("           |--------------------------------------------------------|\n");
    printf("           |    1.一瓶   2.两瓶  3.三瓶   4.其他瓶数请直接输入      |\n");   
    printf("           |--------------------------------------------------------|\n");
    printf("           |--------------------------------------------------------|\n");
    scanf("%d",&wep);
    if(wep>50)
    {system("CLS");printf("您输入的值异常或过大,请您检查输入的值!\n");continue;}/*防止误输入*/
    else if(wep<=50)
    {
        a[p].fenshu+=wep;
        system("CLS");
    }
}
else if(p!=-1)
    printf("对不起,你输入的编码没有对应菜品,请重新输入!\n");  
}while(p!=-1);

system("CLS");
cs->caijia=cddayin(a);

}

void ycldayin(struct List yuan,struct cai a[])
{
char l='\0';
printf("显示原材料余量?(Y/N)\n");
l=getch();
if(l=='Y'||l=='y')
{system("CLS");
ycliao(&yuan,a);}
else
{ system("CLS");
printf("\n\n\n\n");}
}
int diancai1(struct Customer cs)
{

int i=0;
char l='\0';
struct List yuan; /
yuan前不用加“*” /
struct cai a[60]={
{0,"\0",0},
{0,"宫爆鸡丁",10131421,15},{0,"飘香桂鱼",1124,14},{0,"京酱肉丝",112327,16},
{0,"爆炒竹鸡",141617,10},{0,"水煮鱼",122225,50},{0,"日本豆腐",152225,11},
{0,"夫妻肺片",18212625,17},{0,"拍黄瓜",13252223,8},{0,"莲子羹",20,20},
{0,"\0",0},{0,"\0",0},{0,"\0",0},
{0,"\0",0},{0,"\0",0},{0,"\0",0},
{0,"\0",0},{0,"\0",0},{0,"\0",0},
{0,"\0",0},{0,"\0",0},
{0,"长城干红",50,300},{0,"喜力啤酒",51,20},{0,"人头马",52,500},
{0,"\0",0},{0,"\0",0},{0,"\0",0},
{0,"\0",0},{0,"\0",0},{0,"\0",0}};
InitList(&yuan,60);
for(i=0;i<60;i++)
InsertLastList(&yuan,100);//+rand()%50
printf("\n\n\n\n\n\n\n\n");
printf(" |--------------------------------------------------------|\n");
printf(" |---------------- 欢迎您开始点餐! -----------------|\n");

printf(" |--------------- ----------------------------------------|\n");
Sleep(2500);
system("CLS");
diancai(a ,cs); /
点餐函数,开始点餐吧!*/
ycldayin(yuan,a);
printf("\n\n\n\n");
printf(" |--------------------------------------------------------|\n");
printf(" |-------------- 欢迎再次点餐,祝您用餐愉快! ---------------|\n");

printf(" |--------------------------------------------------------|\n");
printf("\n\n\n\n\n\n");
return 0;
}
int CCustomer(struct Customer cs)
{
printf("请您输入顾客的姓名\n");
scanf("%s",cs->name);
printf("请您输入顾客的身份证号码(18位数字)\n");
scanf("%s",cs->ID);
cs->pay = cs->change = cs->day = 0;
return 9;
}
int FCustomer()
{
printf("该顾客退房成功!");
return 8;
}
int main() //程序入口从这里开始运行
{
//system("color 3E");
char choice='1';
system("color 3E");
initial_room(); //初始化60个房间的信息,分三个等级
welcome(); //验证用户登陆,登陆成功显示欢迎信息
while(choice=='1')
{
enter(); //根据用户的选择执行不同的功能
printf("\n");
printf("继续使用本系统请按\"1\",退出请按\"2\"! ");
fflush(stdin);
scanf("%c",&choice);
printf("\n");
}
return 0;
}
//系统登陆界面
**********************************************************************
int welcome() //验证用户登陆,登陆成功显示欢迎信息
{
char name[10],code[20];
printf("请输入用户名和密码:\n");
printf("用户名:");
scanf("%s",name);
// scanf("%s%s",name,code);
printf("密码:");
scanf("%s",code);
while((strcmp(name,"Joe")!=0)||(strcmp(code,"Mercy")!=0))
{
printf("用户名或密码输入有误,请重新输入!\n");
scanf("%s%s",name,code);
}
printf("\n");
printf("\n");
printf(" ▲***************************▲\n");
printf(" △ 欢迎使用酒店管理系统! △\n");
printf(" ▲***************************▲\n");
printf("\n");
return 7;
}
//系统入口***************************************************************************
int enter()
{
int kind_of_service;
printf("请选择服务类别:入住、退房还是查询? \n");
printf("1->入住 2->退房 3->查询 4->点菜 ");
scanf("%d",&kind_of_service);
if((kind_of_service>4) || (kind_of_service<1))
{
printf("您的输入有误,请重试!\n");
scanf("%d",&kind_of_service);
}
else
{
switch(kind_of_service)
{

    case 1:
        check_in();
        break;
    case 2:
        check_out();
        break;
    case 3:
        inquire();
        break;
    case 4:
        diancai1();
        break;

    }
}
return 6;

}
//入住登记***************************************************************************
int check_in()
{
int pay;
{
int room_standard,day;
customer[i] = (struct Customer*)malloc(sizeof(struct Customer));
CCustomer(customer[i]);
printf("请您选择预定房间的标准:\n");
printf("1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n");
scanf("%d",&room_standard);
printf("请输入住宿天数\n");
scanf("%d",&day);
set_day(customer[i],day);
switch(room_standard)
{
int n;
case 1:
pay=day*150;
//set_pay(customer[i],pay);
printf("请收房费 %d元整!\n",pay);
for(n=0; n<20; n++)
{
if(room[n].state==0)
{
printf("入住房间号码为: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 2:
pay=day*200;
printf("请收房费 %d元整!\n",pay);
for(n=20; n<40; n++)
{
if(room[n].state==0)
{
printf("入住房间号码为: %d\n",room[n].number);
room[n].state=2;
set_room_number(customer[i],room[n].number);
break;
}
}
break;
case 3:
pay=day*300;

        printf("请收房费 %d元整!\n",pay);
        for(n=40; n<60; n++)
        {
            if(room[n].state==0)
            {
                printf("入住房间号码为: %d\n",room[n].number);
                room[n].state=2;
                set_room_number(customer[i],room[n].number);
                break;
            }
        }
        break;
    }
    i++;
}
return 4;

}
//退房结算***************************************************************************
int check_out()
{
char name2[13],id2[19];
int standard,j,room_number,day1,day2,day;
printf("请输入要退房的顾客姓名和身份证号码:\n");
scanf("%s%s",name2,id2);
printf("请输入该顾客实住天数:\n");
scanf("%d",&day2);
for(j=0; j<i; j++)
{
if((strcmp(get_name(customer[j]),name2)==0)&&(strcmp(get_ID(customer[j]),id2)==0))
{
char account;
room_number=get_room_number(customer[j]);
standard=room_number/100;
day1=get_day(customer[j]);
day=day1-day2;

        switch(standard)
        {
        case 1:
            printf("顾客的房间号是%d :为单人间,每天150元\n",room_number);
            printf("实际住房消费 %d元整!\n",day2*150);
            printf("\n");
            if(day2*150+caijia<pay)
                printf("请退给该顾客 %d 元整!\n",day*150);
            if(day2*150+caijia>pay)
                printf("请补收该顾客住房费 %d 元整!\n",day2*150+caijia-pay);
                printf("用餐费用为:%d\n",caijia);
                printf("消费总钱数为%d\n",day2*150+caijia);
            break;
        case 2:
            printf("顾客的房间号是%d :为双人间,每天200元%d\n",room_number);
            printf("实际住房消费 %d元整!\n",day2*200);
            printf("\n");
             if(day2*200+caijia<pay)
                printf("请退给该顾客 %d 元整!\n",day*150);
            if(day2*200+caijia>pay)
                printf("请补收该顾客住房费 %d 元整!\n",day2*200+caijia-pay);
                printf("用餐费用为:%d\n",caijia);
                printf("消费总钱数为%d\n",day2*200+caijia);
            break;
        case 3:
            printf("顾客的房间号是%d :为标准间,每天300元%d\n");
            printf("实际住房消费 %d元整!\n",day2*300);
            printf("\n");
            if(day2*300+caijia<pay)
                printf("请退给该顾客 %d 元整!\n",day*300);
            if(day2*150+caijia>pay)
                printf("请补收该顾客住房费 %d 元整!\n",day2*300+caijia-pay);
            printf("用餐费用为:%d\n",caijia);
            printf("消费总钱数为%d\n",day2*300+caijia);
            break;

        }
        //printf("用餐费用为:%d\n",caijia);
        //printf("实际应收总价为")
        printf("退房核算清楚,请按1: ");
        fflush(stdin);
        scanf("%c",&account);
        if(account=='1')
        {
            int k;
            for(k=0; k<80; k++)
            {
                if(room[k].number==get_room_number(customer[j]))
                    room[k].state=0;
            }
            i--;
            for(; j<i; j++)
            {
                customer[j]=customer[j+1];
            }
            free(customer[i]);
            FCustomer();
        }
    }
}
return 3;

}
//信息查询***************************************************************************
int inquire()
{
char inquire_choice;
printf("房间信息查询请按1, 顾客信息查询请按2: ");
fflush(stdin);
scanf("%c",&inquire_choice);
if(inquire_choice=='1')
{
int j,k=0;
printf("\n");
printf("下列房间没人入住:\n");
for(j=0; j<60; j++)
{
if(room[j].state==0)
{
if(k%10==0)
printf("\n");
printf("%d\t",room[j].number);
k++;
}
}
printf("\n");
printf("\n");
k=0;

    printf("\n");
    printf("\n");
    printf("下列房间有人入住:\n");
    for(j=0; j<60; j++)
    {
        if(room[j].state==2)
        {
            if(k%10==0)
                printf("\n");
            printf("%d\t",room[j].number);
            k++;
        }
    }
    printf("\n");
    printf("\n");
}
else if(inquire_choice=='2')
{
    char inquire_choice;
    int j;
    printf("按姓名查询请按1, 按身份证查询请按2: \n");
    fflush(stdin);
    scanf("%c",&inquire_choice);
    if(inquire_choice=='1')
    {
        char name3[13];
        printf("请输入顾客的姓名: \n");
        scanf("%s",name3);
        for(j=0; j<i; j++)
        {
            if(strcmp(get_name(customer[j]),name3)==0)
            {
                printf("%s的住房信息如下:\n",name3);
                printf("\t房间号为: %d\n",get_room_number(customer[j]));
            }
        }
    }
    if(inquire_choice=='2')
    {
        char id3[19];
        int j;

        printf("请输入顾客的身份证: \n");
        scanf("%s",id3);
        for(j=0; j<i; j++)
        {
            if(strcmp(get_ID(customer[j]),id3)==0)
            {
                printf("%s的住房信息如下:\n",get_name(customer[j]));
                printf("\t房间号为: %d\n",get_room_number(customer[j]));

            }
        }
    }
}
return 2;

}
//房间信息初始化*********************************************************************
int initial_room() //对60个房间进行初始化,分3个等级
{
int j,k=101;
for(j=0; j<20; j++)
{
room[j].number=k++;
room[j].rank=1;
room[j].price=150;
room[j].state=0;
}
k=201;
for(j=20; j<40; j++)
{
room[j].number=k++;
room[j].rank=2;
room[j].price=200;
room[j].state=0;
}
k=301;
for(j=40; j<60; j++)
{
room[j].number=k++;
room[j].rank=3;
room[j].price=300;
room[j].state=0;
}
return 1;
}


Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在oj上显示运行时错误,有大佬能帮忙看一下吗?
问题描述: 任意给定两个字符串str1与str2, str1与str2中可以包含任意字符。你的任务是统计字符串str2在str1中出现的次数。 如字符串str1为“asasasbbbasbas”,str2为“as”,则统计结果为5。注意如果字符串str1为“aaaaa”,字符串str2为“aaa”,则统计结果为3。 输入与输出要求: 输入两个长度不超过100的字符串,以换行符结束。输出统计次数,占一行。 程序运行效果: dhd dhdhdfg dhd dh zx67 dhd mklodhdh↙ dhd↙ 6↙ #include <stdio.h> #include <stdlib.h> int main() { int i, count; char str1[102], str2[102], *s1, *s2, *str; s1=(char*)malloc(102); s2=(char*)malloc(102); str=(char*)malloc(102); fgets(str1,102,stdin); for(i=0;str1[i]!='\n';i++)//统计str1中的字符个数 { } str1[i]='\0';//将str1中的最后一个'\n'转化成'\0' fgets(str2,102,stdin); for(i=0;str2[i]!='\n';i++)//统计str2中的字符个数 { } str2[i]='\0';//将str2中的最后一个'\n'转化成'\0' count=0;//count的初始化 str=str1;//将str1的字符放入str中,能够让下面操作直接用str++ while(*str!='\0') { s1=str;//s1为str的当前判断字符 s2=str2;//s2为str2的首字符 while(*s1==*s2&&*s2!='\0')//判断两个字符串的每个字符是否相等,若相等且s2并未结束则各往后读一位字符 { s1++; s2++; } if(*s2=='\0')//跳出while循环时s2已经结束了则满足条件 { count++;//若满足条件count加一 } str++; } printf("%d", count); free(s1); free(s2); free(str); return 0; }
关于tomcat运行时发现的一次错误问题,希望有大佬能排忧解难一下,感谢
最近在进行一个小型的web工程开发,这个web是做运维局域网内服务器的平台,项目的基本功能现在已经实现的差不多了,但是在发布部署在tomcat上碰到了一些问题,因缺乏这方面的认识,无法定位准确的问题所在。 问题是这样的,在局域网内,一台服务器用的是centos,在tomcat上部署web应用,当我把war工程文件放到tomcat目录底下的webapps中,一切都如自己所想的那样子正常运行,功能都可以使用,然后接着在本机ecilpse上继续优化升级代码方面的事情,某一天当我再去访问这个项目时,提示告诉我无法连接到这个ip:端口号/项目名,然后我就去试着ping两台机器,发现一切都正常,之后我就在这个服务器上单独本地访问web项目(非开发的电脑,部署测试的),访问localhost去看是否能访问这个部署在tomcat的项目(仅有一个),发现,服务器自己都不能访问的到这个web,之后我直接访问这个tomcat服务器(就是localhost:8080),发现那只猫的界面也访问不了,尝试了半天,发现都没怎么用,之后重启了tomcat就能正常访问了,现在大致归纳了几个点问题 1、内存溢出(百度告诉说这样子像是tomcat假死现象,需要设置什么jvm参数) 2、查阅tomcat日志发现说socket打开太多了,超出了限制(疑似web程序中有操作流的方法,但是我每次使用完都会释放掉资源close掉的,但是在后台中,有写了一些定时任务)![图片说明](https://img-ask.csdn.net/upload/201909/11/1568197140_31882.png) 3、关于tomcat进程用命令查看了一番,也没发现个啥问题, 4、有的说是和这个限制数有关![图片说明](https://img-ask.csdn.net/upload/201909/11/1568197277_710199.png) 但是我修改了限制但是也还是没有任何反应; 能有大佬教教我改怎么定位到这个问题吗? -------------------------------------------------------------------- 项目用的是ssm(Mybatis/SpringMvc/Struts2)的框架 tomcat7服务器,端口已经把默认的8080改成没占用过的其他端口
OJ题目运行错误,本地运行没问题
### 小白求救,运行错误,但找不出问题在哪 在本地成功运行,也测试了好多组数据。但是本人可能欠缺经验,编写程序习惯不好,可能一些细节没注意,导致提交到OJ上去,显示运行错误。我自己又找不到问题。。。跪求大佬帮忙看看 ####题目描述 在n个整数中查找指定数字。 ####输入 输入数据有多组,每组数据包括两行,第一行包含一个整数n(0<n<=100)和n个整数。第二行包含一个整数m表示要查找的关键字。 ####输出 如果在n个整数中有和m相等的输出该整数,如果没有输出null。 ####样例输入 ``` 5 1 2 3 4 5 3 3 10 20 30 100 ``` 样例输出 ``` 3 null ``` 小白的代码: ``` import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] array = new int[100]; while (true) { int cin = sc.nextInt(); for (int i = 0; i < cin; i++) { int inp = sc.nextInt(); array[i] = inp; } int inpp = sc.nextInt(); for (int i = 0; i < cin; i++) { if (array[i] == inpp) { System.out.println(inpp); break; } else if (arr[i] != inpp && arr[i] == arr[cin - 1]) System.out.println("null"); } } } } ``` --- #2019-10-26 问题已解决 while循环的循环条件不能用true,要用hasNext
运行tensorflow时出现tensorflow.python.framework.errors_impl.InternalError: Blas GEMM launch failed这个错误
运行tensorflow时出现tensorflow.python.framework.errors_impl.InternalError: Blas GEMM launch failed这个错误,查了一下说是gpu被占用了,从下面这里开始出问题的: ``` 2019-10-17 09:28:49.495166: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6382 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1070, pci bus id: 0000:01:00.0, compute capability: 6.1) (60000, 28, 28) (60000, 10) 2019-10-17 09:28:51.275415: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cublas64_100.dll'; dlerror: cublas64_100.dll not found ``` ![图片说明](https://img-ask.csdn.net/upload/201910/17/1571277238_292620.png) 最后显示的问题: ![图片说明](https://img-ask.csdn.net/upload/201910/17/1571277311_655722.png) 试了一下网上的方法,比如加代码: ``` gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) ``` 但最后提示: ![图片说明](https://img-ask.csdn.net/upload/201910/17/1571277460_72752.png) 现在不知道要怎么解决了。新手想试下简单的数字识别,步骤也是按教程一步步来的,可能用的版本和教程不一样,我用的是刚下的:2.0tensorflow和以下: ![图片说明](https://img-ask.csdn.net/upload/201910/17/1571277627_439100.png) 不知道会不会有版本问题,现在紧急求助各位大佬,还有没有其它可以尝试的方法。测试程序加法运算可以执行,数字识别图片运行的时候我看了下,GPU最大占有率才0.2%,下面是完整数字图片识别代码: ``` import os import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers, optimizers, datasets os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.2) #sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) (x, y), (x_val, y_val) = datasets.mnist.load_data() x = tf.convert_to_tensor(x, dtype=tf.float32) / 255. y = tf.convert_to_tensor(y, dtype=tf.int32) y = tf.one_hot(y, depth=10) print(x.shape, y.shape) train_dataset = tf.data.Dataset.from_tensor_slices((x, y)) train_dataset = train_dataset.batch(200) model = keras.Sequential([ layers.Dense(512, activation='relu'), layers.Dense(256, activation='relu'), layers.Dense(10)]) optimizer = optimizers.SGD(learning_rate=0.001) def train_epoch(epoch): # Step4.loop for step, (x, y) in enumerate(train_dataset): with tf.GradientTape() as tape: # [b, 28, 28] => [b, 784] x = tf.reshape(x, (-1, 28 * 28)) # Step1. compute output # [b, 784] => [b, 10] out = model(x) # Step2. compute loss loss = tf.reduce_sum(tf.square(out - y)) / x.shape[0] # Step3. optimize and update w1, w2, w3, b1, b2, b3 grads = tape.gradient(loss, model.trainable_variables) # w' = w - lr * grad optimizer.apply_gradients(zip(grads, model.trainable_variables)) if step % 100 == 0: print(epoch, step, 'loss:', loss.numpy()) def train(): for epoch in range(30): train_epoch(epoch) if __name__ == '__main__': train() ``` 希望能有人给下建议或解决方法,拜谢!
编程程序求出m,n之间所有素数(包括m和n),其中n>m?
大佬们看一下我这个程序 运行时没有错误的但是好像限制条件有问题。不知道是哪里出的,我自己认为把非素数的条件考虑完全了但是测试数据还是不对。 问题描述 编程程序求出m,n之间所有素数(包括m和n),其中n>m。 输入形式 输入一行,包括整数m和n。 输出形式 输出一行,输出m与n间的所有素数,各数之间以空格分隔。若无素数,则输出no。 样例输入 1 10 样例输出 2 3 5 7 有一个测试数据是要输出no,但是我输出的是空值。 ``` #include<stdio.h> #include<math.h> int main() { int a,b,n,k,i; scanf("%d%d",&a,&b); if(a>=b||a<1) printf("no"); else { if(a==1) a=2; for(n=a;n<=b;n++) { k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0)break; if(i>=k+1) { printf("%d ",n); } } } printf("\n"); return 0; } ```
第一个hadoop程序就出现问题,就大佬帮忙看看。
如果程序打成jar包,用命令是可以运行的。但是在idea中就出现这样的错误 17/03/11 15:21:37 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Exception in thread "main" java.lang.VerifyError: Bad type on operand stack Exception Details: Location: org/apache/hadoop/mapred/JobTrackerInstrumentation.create(Lorg/apache/hadoop/mapred/JobTracker;Lorg/apache/hadoop/mapred/JobConf;)Lorg/apache/hadoop/mapred/JobTrackerInstrumentation; @5: invokestatic Reason: Type 'org/apache/hadoop/metrics2/lib/DefaultMetricsSystem' (current frame, stack[2]) is not assignable to 'org/apache/hadoop/metrics2/MetricsSystem' Current Frame: bci: @5 flags: { } locals: { 'org/apache/hadoop/mapred/JobTracker', 'org/apache/hadoop/mapred/JobConf' } stack: { 'org/apache/hadoop/mapred/JobTracker', 'org/apache/hadoop/mapred/JobConf', 'org/apache/hadoop/metrics2/lib/DefaultMetricsSystem' } Bytecode: 0x0000000: 2a2b b200 03b8 0004 b0 at org.apache.hadoop.mapred.LocalJobRunner.<init>(LocalJobRunner.java:573) at org.apache.hadoop.mapred.JobClient.init(JobClient.java:494) at org.apache.hadoop.mapred.JobClient.<init>(JobClient.java:479) at org.apache.hadoop.mapreduce.Job$1.run(Job.java:563) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) at org.apache.hadoop.mapreduce.Job.connect(Job.java:561) at org.apache.hadoop.mapreduce.Job.submit(Job.java:549) at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:580) at com.hadoop.maxtemperature.MaxTemperature.main(MaxTemperature.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-core</artifactId> <version>1.2.1</version> </dependency> </dependencies>
c#无法使用QtCreator封装的dll,报错误System.BadImageFormatException
我使用QtCreator编写了一个函数,利用qtwinmigrate封装成dll,在c#使用这个dll会报错误:System.BadImageFormatException:“试图加载格式不正确的程序。 (Exception from HRESULT: 0x8007000B)”,这个问题应该怎么解决啊?麻烦各位大佬帮忙看一下,谢谢啦! qtwinmigrate的介绍:https://www.cnblogs.com/findumars/p/4951717.html?utm_source=debugrun&utm_medium=referral 我的Qt程序如下图,只有一个main.cpp ![图片说明](https://img-ask.csdn.net/upload/201907/03/1562156256_724531.jpg) 运行后,生成64位debug版的qtdll.dll(32位的我也试过,有同样的问题) 我在vs2017中创建一个c#控制台应用,编写代码如下图: ![图片说明](https://img-ask.csdn.net/upload/201907/03/1562156489_418379.jpg) 在debug/Any CPU 或者debug/x64下运行,都报错误 ![图片说明](https://img-ask.csdn.net/upload/201907/03/1562156641_69184.jpg) 还有一个问题就是,我新建的c#控制台应用,在debug/x86下运行,程序直接异常终止 ![图片说明](https://img-ask.csdn.net/upload/201907/03/1562156849_985628.jpg) 辛苦各位大佬帮忙看一下吧
萌新java连接MySQL数据库出现java.lang.NullPointerException错误是为什么,求大佬看一下代码解答
package Stu; import java.util.*; public class StuManage { public void menu(){ connectSQL s=new connectSQL(); int xuhao; String b1 = null,c1=null,b111=null; int a = 0,a1=0,b11=0,c11=0; Scanner scanner=new Scanner(System.in); System.out.println("欢迎来到学生信息管理系统"); System.out.println("1.新增学生"); System.out.println("2.修改学生"); System.out.println("3.删除学生"); System.out.println("4.查询学生"); System.out.println("5.显示所有学生信息"); System.out.println("6.退出该系统"); System.out.println("请选择(1-5):"); xuhao=scanner.nextInt(); switch (xuhao) { case 1: s.open(); stuadd(); s.down(); break; case 2: update(); break; case 3: studel(); s.open(); s.shanchu(a); s.down(); break; case 4: stuList(); s.open(); s.chaxun(b11); s.down(); break; case 5: xianshi(); s.open(); s.xianshi(); s.down(); break; case 6: System.exit(0); break; default: System.out.println("输入有误:程序自动退出,请重启程序"); break; } } public void stuadd(){ connectSQL x=new connectSQL(); Scanner s=new Scanner(System.in); String select,jieshou,name=null; int no=0,phone=0; System.out.println("====新增学生===="); System.out.println("学号:"); no=s.nextInt(); jieshou=s.nextLine(); System.out.println("姓名:"); name=s.nextLine(); System.out.println("手机号:"); phone=s.nextInt(); System.out.println("您输入的信息为:学号:"+no+" "+"姓名:"+name+" "+"手机号:"+phone); System.out.println("是否保存?y/n"); jieshou=s.nextLine(); select=s.nextLine(); if(select.equals("y")){ x.tianjia(no,name,phone); System.out.println("保存成功!"); } else if(select.equals("n")){ System.out.println("请重新输入"); } } package Stu; import java.sql.*; public class connectSQL { Connection con=null; PreparedStatement st=null; ResultSet rs=null; public void open(){ try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } String uri="jdbc:mysql://localhost:3306/qinyewei?user=root&password=123456&userSSL=ture"; try{ con=DriverManager.getConnection(uri); } catch(SQLException e){ System.out.println(e); } } public void down(){ try { con.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } void xianshi(){ try{ st=con.prepareStatement("select * from stu"); rs=st.executeQuery(); while(rs.next()) { String a=rs.getString(1); String b=rs.getString(2); String c=rs.getString(3); System.out.printf("%s\t",a); System.out.printf("%5s\t",b); System.out.println(c); } } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } void tianjia(int a1,String b1,int c1) { try { System.out.println(a1); System.out.println(b1); System.out.println(c1); st=con.prepareStatement("insert stu values(?,?,?)"); st.setInt(1,a1); st.setString(2,b1); st.setInt(3,c1); int i=st.executeUpdate(); System.out.println("添加了"+i+"条记录"); this.xianshi(); } catch (Exception e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } 运行后输入1、学号、姓名、手机号以后出现错误是为什么呢? 欢迎来到学生信息管理系统 1.新增学生 2.修改学生 3.删除学生 4.查询学生 5.显示所有学生信息 6.退出该系统 请选择(1-5): 1 ====新增学生==== 学号: 123123 姓名: weqwe 手机号: 123123 您输入的信息为:学号:123123 姓名:weqwe 手机号:123123 是否保存?y/n y 123123 weqwe 123123 java.lang.NullPointerException保存成功! at Stu.connectSQL.tianjia(connectSQL.java:56) at Stu.StuManage.stuadd(StuManage.java:72) at Stu.StuManage.menu(StuManage.java:22) at Stu.Main.main(Main.java:7) 第56行代码是 st=con.prepareStatement("insert stu values(?,?,?)");
自己写的学生管理系统
![图片说明](https://img-ask.csdn.net/upload/201910/31/1572502335_787557.png) 问题:程序没有报错,但是执行功能部分有问题 添加功能没问题 所有功能针对存在的对象信息没有问题 但是针对未存在的信息有问题 比如添加了 李 174 18 男 80数据 完了要查询学号为77的就会报错(或者修改学号为177或者删除学号为177的) 因为信息不存在,不知道哪里出了问题,希望各位大佬帮忙看看,运行下,谢谢 ``` package student; import java.util.*; class Stu{ static Scanner sc=new Scanner(System.in); static Stu[] stu=new Stu[100]; static int number=0; private String name; private long num; private int age; private String sex; private double sore; public Stu(){ super(); } public void setName(String name) { this.name=name; } public void setNum(long num) { this.num=num; } public void setAge(int age) { this.age=age; } public void setSex(String sex) { this.sex=sex; } public void setSore(double sore) { this.sore=sore; } public String getName() { return this.name; } public long getNum() { return this.num; } public int getAge() { return this.age; } public String getSex() { return this.sex; } public double getSore() { return this.sore; } public static void add(Stu stu[]) { while(true) { System.out.println("按任意键输入0键退出"); if(sc.nextInt()==0)break; System.out.println("请添加姓名-学号-年龄-性别-成绩"); stu[number]=new Stu(); stu[number].setName(sc.next()); stu[number].setNum(sc.nextLong()); stu[number].setAge(sc.nextInt()); stu[number].setSex(sc.next()); stu[number].setSore(sc.nextDouble()); number++; System.out.println("添加成功"); } } public static void delete(Stu stu[]) { System.out.println("请输入删除学生学号"); long num1=sc.nextLong(); int i; for(i=0;i<number;i++) { if(num1==stu[i].num) { for(;i<number-1;i++) { stu[i]=stu[i+1]; } number--; } } if(i==number)System.out.println("未找到"); } public static void update(Stu stu[]) { System.out.println("请输入修改的学生信息学号"); long num2=sc.nextLong(); int i; for(i=0;i<number;i++) { if(num2==stu[i].num) { System.out.println("请输入修改内容选项及修改内容"); System.out.println("1-修改姓名 2-修改学号 3-修改年龄 4-修改性别 5-修改成绩"); int choice1=sc.nextInt(); switch(choice1) { case 1:stu[i].setName(sc.next());break; case 2:stu[i].setNum(sc.nextLong());break; case 3:stu[i].setAge(sc.nextInt());break; case 4:stu[i].setSex(sc.next());break; case 5:stu[i].setSore(sc.nextDouble());;break; } break; } if(i==number) System.out.println("信息错误"); } } public static void select(Stu stu[]) { System.out.println("请输入查询学生的学号"); long num3=sc.nextLong(); int i; for(i=0;i<number;i++) { if(num3==stu[i].num) { System.out.println("姓名"+stu[i].getName()+"学号"+stu[i].getNum()+"年龄"+stu[i].getAge()+"性别"+stu[i].getSex()+"成绩"+stu[i].getSore()); break; } if(i==number) System.out.println("信息错误"); } } public static void selectall(Stu stu[]) { System.out.println("全体学生信息"); int i; for(i=0;i<number;i++) { System.out.println("姓名"+stu[i].getName()+"学号"+stu[i].getNum()+"年龄"+stu[i].getAge()+"性别"+stu[i].getSex()+"成绩"+stu[i].getSore()); } } public static void show() { int choice; System.out.println("这是一个学生信息管理系统,欢迎您对本系统的使用"); while(true){ System.out.println("1.信息添加"); System.out.println("2.信息删除"); System.out.println("3.信息修改"); System.out.println("4.指定信息查询"); System.out.println("5.总体信息查询"); System.out.println("6.退出"); System.out.println("请输入你要进行的操作"); choice=sc.nextInt(); if(choice==6)break; switch(choice){ case 1: add(stu); break;//添加学生信息 case 2: delete(stu);break;//删除学生信息 case 3: update(stu);break;//修改学生信息 case 4: select(stu);break;//指定查询学生信息 case 5: selectall(stu);break;//总体信息查询 } } } } public class student{ public static void main(String[] args){ Stu stu=new Stu(); stu.show(); } } ![图片说明](https://img-ask.csdn.net/upload/201910/31/1572502290_217135.png) ```
用linux安装软件出现的问题 ERROR: Exception: Traceback (most recent call last)
edx@ubuntu:~$ git clone https://github.com/kan-bayashi/PytorchWaveNetVocoder.git 正克隆到 'PytorchWaveNetVocoder'... remote: Enumerating objects: 330, done. remote: Counting objects: 100% (330/330), done. remote: Compressing objects: 100% (159/159), done. remote: Total 2328 (delta 220), reused 258 (delta 171), pack-reused 1998 接收对象中: 100% (2328/2328), 436.01 KiB | 736.00 KiB/s, 完成. 处理 delta 中: 100% (1436/1436), 完成. edx@ubuntu:~$ cd PytorchWaveNetVocoder/tools edx@ubuntu:~/PytorchWaveNetVocoder/tools$ make test -d venv || virtualenv -p python3.6 venv Running virtualenv with interpreter /usr/bin/python3.6 Using base prefix '/usr' New python executable in /home/edx/PytorchWaveNetVocoder/tools/venv/bin/python3.6 Also creating executable in /home/edx/PytorchWaveNetVocoder/tools/venv/bin/python Installing setuptools, pkg_resources, pip, wheel...done. . venv/bin/activate && pip install --upgrade pip Requirement already up-to-date: pip in ./venv/lib/python3.6/site-packages (19.3.1) . venv/bin/activate && cd ../ && pip install torch==1.0.1 torchvision==0.2.2 Collecting torch==1.0.1 Downloading https://files.pythonhosted.org/packages/f7/92/1ae072a56665e36e81046d5fb8a2f39c7728c25c21df1777486c49b179ae/torch-1.0.1-cp36-cp36m-manylinux1_x86_64.whl (560.0MB) |████████████████████████████████| 560.0MB 98kB/s eta 0:00:01ERROR: Exception: Traceback (most recent call last): File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 153, in _main status = self.run(options, args) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/commands/install.py", line 382, in run resolver.resolve(requirement_set) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/legacy_resolve.py", line 201, in resolve self._resolve_one(requirement_set, req) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/legacy_resolve.py", line 365, in _resolve_one abstract_dist = self._get_abstract_dist_for(req_to_install) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/legacy_resolve.py", line 313, in _get_abstract_dist_for req, self.session, self.finder, self.require_hashes File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 194, in prepare_linked_requirement progress_bar=self.progress_bar File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/download.py", line 465, in unpack_url progress_bar=progress_bar File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/download.py", line 316, in unpack_http_url progress_bar) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/download.py", line 551, in _download_http_url _download_url(resp, link, content_file, hashes, progress_bar) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/download.py", line 253, in _download_url hashes.check_against_chunks(downloaded_chunks) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/utils/hashes.py", line 80, in check_against_chunks for chunk in chunks: File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/download.py", line 223, in written_chunks for chunk in chunks: File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/utils/ui.py", line 160, in iter for x in it: File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_internal/download.py", line 212, in resp_read decode_content=False): File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/urllib3/response.py", line 564, in stream data = self.read(amt=amt, decode_content=decode_content) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/urllib3/response.py", line 507, in read data = self._fp.read(amt) if not fp_closed else b"" File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 65, in read self._close() File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 52, in _close self.__callback(self.__buf.getvalue()) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/cachecontrol/controller.py", line 300, in cache_response cache_url, self.serializer.dumps(request, response, body=body) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/cachecontrol/serialize.py", line 72, in dumps return b",".join([b"cc=4", msgpack.dumps(data, use_bin_type=True)]) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/msgpack/__init__.py", line 46, in packb return Packer(**kwargs).pack(o) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/msgpack/fallback.py", line 900, in pack self._pack(obj) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/msgpack/fallback.py", line 891, in _pack nest_limit - 1) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/msgpack/fallback.py", line 985, in _pack_map_pairs self._pack(v, nest_limit - 1) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/msgpack/fallback.py", line 891, in _pack nest_limit - 1) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/msgpack/fallback.py", line 984, in _pack_map_pairs self._pack(k, nest_limit - 1) File "/home/edx/PytorchWaveNetVocoder/tools/venv/lib/python3.6/site-packages/pip/_vendor/msgpack/fallback.py", line 847, in _pack return self._buffer.write(obj) MemoryError Makefile:6: recipe for target 'venv/bin/activate' failed make: *** [venv/bin/activate] Error 2 这是运行出来的错误 ,因为时第一次使用,所以没有看懂什么意思,想求助大佬们,怎么解决![图片说明](https://img-ask.csdn.net/upload/201911/07/1573114791_122624.png)这是代码运行make的文件程序
新手写的python代码段,求大佬帮忙看看
这是我一步一步的注释然后用print尝试输出找到出问题的位置但是就是不懂是为什么,这个 小程序最后能运行,但是只能在txt文件里面写50章内容,然后就会报错,网上推到下面这一段代码出问题 ``` chapter_content = re.findall(r'style5\(\);</script>(.*?);<script type="text/', chapter_html)``` 这里可以取到每一章小说文本总共一千多章小说都可以取到,然而数据处理之后是放在 [] 列 表里面,但是下一步需要用replace替换里面的不需要的各种符号,但是replace()不可以对列表 用,就需要把列表里面的东西都取出来,网上的教程就是在上面那段代码最后加上[0]就可以取 出来了,但是取出来之前可以全部内容都拿到,加上[0]之后就可以用replace()替换,但是就只能取到50章就报错了 错误提示 ```Traceback (most recent call last): File "D:/Python/untitled/爬虫3.py", line 31, in <module> chapter_content = re.findall(r'style5\(\);</script>(.*?);<script type="text/', chapter_html)[0] IndexError: list index out of range ``` ```Traceback (most recent call last): ## ## ## File "D:/Python/untitled/爬虫3.py", line 31, in <module> ## chapter_content = re.findall(r'style5\(\);</script>(.*?);<script type="text/', chapter_html)[0] ## IndexError: list index out of range``` ## ## ## ## ## ## ## ## ## #!/user/bin/env python ## # _*_ coding:utf-8 _*_ ## import requests ## import re ## url = 'http://www.quanshuwang.com/book/106/106281' ## # 发送http请求 ## response = requests.get(url) ## response.encoding = 'gbk' ## html = response.text ## # print(html) ## title = re.findall(r'</span><strong>(.*?)</strong>', html)[0] ## # print(title)[0] ## ## dl = re.findall(r'<DIV class="clearfix dirconone">(.*?)</DIV> ', html, re.S)[0] ## chapter_info_list = re.findall(r'<li><a href="(.*?)" title=".*?">(.*?)</a></li>', dl) ## ## fb = open('%s.txt' % title, 'w', encoding='utf-8') # 中文内容encoding='utf-8' ## ## for chapter_info in chapter_info_list: ## chapter_title = chapter_info[1] ## chapter_url = chapter_info[0] ## # print(chapter_title, chapter_url) ## ## chapter_response = requests.get(chapter_url) ## chapter_response.encoding = 'gbk' ## chapter_html = chapter_response.text ## # print(chapter_html) ## # 提取数据 ## chapter_content = re.findall(r'style5\(\);</script>(.*?);<script type="text/', chapter_html) ## print(chapter_content) ## ## ## ## ## # chapter_content = chapter_content.replace('&nbsp;&nbsp;&nbsp;&nbsp;', '') ## # chapter_content = chapter_content.replace('<br />', '') ## ## # print(chapter_content) ## ## # 7写入文件 ## # with open('%s.txt' % title, "w", encoding='utf-8') as fb: ## # fb.write(chapter_title) ## # fb.write(chapter_content) ## # fb.write('\n') ## ## # 方法二 ## # fb.write(chapter_title) ## # fb.write(chapter_content) ## # fb.write('\n') ## print('正在下载%s' % chapter_title) ## # fb.closed() ```
MFC中使用Update(FALSE)后变量不更新显示新的值
各位大佬麻烦帮忙看一下,放了一个static text的控件,在对话框中添加了下拉框的消息的处理函数,想要调用UpdateData(FALSE)函数将变量m_DriveType的值更新到界面上,但是运行后什么都没有。。 ``` // File1Dlg.cpp : 实现文件 // #include "stdafx.h" #include "File1.h" #include "File1Dlg.h" #include "afxdialogex.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 用于应用程序“关于”菜单项的 CAboutDlg 对话框 class CAboutDlg : public CDialogEx { public: CAboutDlg(); // 对话框数据 enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) END_MESSAGE_MAP() // CFile1Dlg 对话框 CFile1Dlg::CFile1Dlg(CWnd* pParent /*=NULL*/) : CDialogEx(CFile1Dlg::IDD, pParent) , m_DriverType(_T("")) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CFile1Dlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_COMBO1, m_drive); DDX_Text(pDX, IDC_STATIC1, m_DriverType); } BEGIN_MESSAGE_MAP(CFile1Dlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_OK, &CFile1Dlg::OnBnClickedOk) ON_CBN_SELCHANGE(IDC_COMBO1, &CFile1Dlg::OnCbnSelchangeComboDrive) END_MESSAGE_MAP() // CFile1Dlg 消息处理程序 BOOL CFile1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 //第一次调用 size_t alldrive=::GetLogicalDriveStrings(0,NULL); _TCHAR *driverstr; driverstr=new _TCHAR[alldrive+sizeof(_T(""))]; //printf("AllDrivesize is: %d\r\n",alldrive); //第二次调用 size_t twosize=GetLogicalDriveStrings(alldrive,driverstr); CString DriveLetter; for(int i=0;i<alldrive/4;i++) { DriveLetter=driverstr+i*4; m_drive.InsertString(i,DriveLetter.GetBuffer()); } m_drive.SetCurSel(0); return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } void CFile1Dlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialogEx::OnSysCommand(nID, lParam); } } // 如果向对话框添加最小化按钮,则需要下面的代码 // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序, // 这将由框架自动完成。 void CFile1Dlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CDialogEx::OnPaint(); } } //当用户拖动最小化窗口时系统调用此函数取得光标 //显示。 HCURSOR CFile1Dlg::OnQueryDragIcon() { return static_cast<HCURSOR>(m_hIcon); } void CFile1Dlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 CString strDrive; m_drive.GetWindowTextW(strDrive); this->MessageBox(strDrive.GetBuffer()); OnOK(); } void CFile1Dlg::OnCbnSelchangeComboDrive() { // TODO: 在此添加控件通知处理程序代码 CString m_DriveType; CString strDrive; int now=m_drive.GetCurSel(); m_drive.GetLBText(now,strDrive); // not // m_Drive.GetWindowText(strDrive); int retCode = ::GetDriveType(strDrive); switch (retCode) { case DRIVE_UNKNOWN: m_DriveType = "驱动器类型:未知"; break; case DRIVE_NO_ROOT_DIR: m_DriveType = "类型:驱动器根路径错误"; break; case DRIVE_REMOVABLE:// 2 m_DriveType = "类型:可移动磁盘驱动器"; break; case DRIVE_FIXED:// 3 m_DriveType = "类型:固定磁盘驱动器"; break; case DRIVE_REMOTE: m_DriveType = "类型:网络磁盘驱动器"; break; case DRIVE_CDROM: m_DriveType = "类型:CD-ROM"; break; case DRIVE_RAMDISK: m_DriveType = "类型:RAM"; break; default: m_DriveType = "类型:未知"; break; } UpdateData(FALSE); } ``` ![图片说明](https://img-ask.csdn.net/upload/201909/25/1569421005_977279.png) ![图片说明](https://img-ask.csdn.net/upload/201909/25/1569421041_644529.png) ps.变量类型是value还是control会影响UpdateData(FALSE)的调用吗??
为什么我的链表在运行时会卡死或者无法存取信息?
c语言中的链表出了些小问题,运行程序是会卡死 ``` #include<stdio.h> #include<stdlib.h> #include<string.h> #include"struct.h"//专门存放结构体 void register_show(); void success_show(); void order_check_show(); void no_order_show(); //都为显示函数 无影响 int register_add(peo *a,peo *b) { system("cls"); register_show(); int career; scanf("%d",&career); peo *pnew,*p;//想用链表 pnew=(peo *)malloc(sizeof(peo)); p=(peo *)malloc(sizeof(peo)); scanf("%s",pnew->id); fflush(stdin); scanf("%s",pnew->name); fflush(stdin); if(a==NULL) { a=pnew; } else { p=a; while(p!=NULL) { if(strcmp(p->id,pnew->id)==0) { printf("此账号已经被注册!"); return 0; } p=p->next; } p=pnew; pnew->next=NULL; } p=a; while(p!=NULL) { printf("%s",p->id); p=p->next; } free(p); free(pnew); system("cls"); success_show(); system("pause"); return 1; } /*typedef struct people{ char name[10]; char id[10]; struct people * next; }peo; */ //结构体如上 ``` 我想用建立一个链表来存储我的人员信息,但是每次存完发现最多只有一个人员的信息(就是存了两个就会发现其中一个信息没了)。 so我就想输出出来看我保存的东西是不是有问题,结果现在发现这个程序就直接卡死了。(×_×) 这个就有意思了,凭我的直觉,一定是我的链表或定义出了问题,但是奈何我这个大萌新是真的找不到什么错误(好吧!其实是学业不精,链表里面的一些注意点没学会)叹气! 现在我只能求助于各位大神,希望大家能够帮我看看到底是出了什么问题,当然顺便再和我说说关于c语言的链表的知识就更好了(当然,我是绝对不敢要求各为大佬的,只是我的一个小小的请求)最后 拜托了 希望大佬们把我从害怕链表的日子里救出来吧!!!
STM32F2系列的复位问题
最近在使用STM32做一个对继电器检测和分析的电路,但是电路板出来之后,发现复位电路基本无效,就是按不按都没有用,单片机根本无法下载程序和运行,看了下网上的很多电路,和我的也都一样如图,图中的RESET是接的单片机NRST,VDD和VSS各通过0欧电阻和3.3V与GND连接了。 ![图片说明](https://img-ask.csdn.net/upload/201901/18/1547778454_920529.png) 测试发现,RESET的电压,S1未按下时候为0.3V-0.4V,按下之后是0V,我考虑在数字电路中这两个电压都是算作低电平的,在RESET管脚应该是有很小的电流流进去了;于是更换了电阻15K为1K,这下RESET的电平,在S1未按下时候为1.5V左右,按下后为0V,之后复位电路就可以正常工作了,下载程序也可以运行。 但是后来又发现个问题,就是当BOOT0置零时候,我希望上电后单片机可以自己启动运行,可是还是需要手动按复位键它才会运行,考虑时间常数(电阻和电容决定的)的问题,我就把电容不断改大,直到改到106的时候,单片机就可以自启动运行了,现在的电路如图![图片说明](https://img-ask.csdn.net/upload/201901/18/1547778946_481263.png) 不知道是网上的图不适合F2系列还是我这里有什么错误?有没有大佬可以分析一下,主要我这个项目对上电时间有要求的,如果单片机启动太久的话会错过信息的检测,所以我对目前这个时间常数还是有点担心的
用hibernate等实现:从一数据库复制一条记录,然后修改该记录的某一列,再插入原数据库
目前该功能(简称copyinsert)可以在mysql数据库里用sql语句实现,我想用hibernate实现,大部分都已经完成,感觉在dao层有一些错误,希望大佬帮忙解惑,能够解决者,还可以另外给C币。 例子如下:(ID为自增,非数据库定义内容) ![图片说明](https://img-ask.csdn.net/upload/201808/22/1534872743_640656.png) 数据库原来有三条记录,然后在mysql中输入查询语句: INSERT INTO t_test(NO,NAME,SEX) SELECT REPLACE (NO,'XS1','XS4'),NAME,SEX FROM t_test WHERE NO='XS1'; ![图片说明](https://img-ask.csdn.net/upload/201808/22/1534872784_814889.png) 可以成功在mysql数据库中实现,结果如下: ![图片说明](https://img-ask.csdn.net/upload/201808/22/1534872803_898787.png) (从上面看,在数据库中直接操作是可以的,但是我想用框架实现)我用了hibernate,struts2,Jeasyui框架(基本都不熟练),目前能确定的是dao层的拼接的sql语句是正确的,但是不能实现插入数据库的功能。 系统主界面如下: ![图片说明](https://img-ask.csdn.net/upload/201808/22/1534873318_873663.png) 点击datagrids上面的“复制并插入“按钮,期望实现**复制某一条信息,修改其中一列后再插入数据库中**(例子是,复制XS1信息,将XS1修改为XS99后,再插入原数据库)。主界面jsp关键代码如下: //1."复制并插入信息"按钮作用 $("#deriveBtn").click(function(){ var no1="XS1"; var no2="XS99"; $.post("test_copyinsert.action",{"no1":no1,"no2":no2},function(data){ if(data.success){ //刷新datagrid $("#list").datagrid("load"); //提示 $.messager.show({ title:"提示", msg:"insertcopy成功" }); }else{ $.messager.alert("提示","检索失败:"+data.msg,"error"); } },"json"); }); }); 下面是TestAction部分代码(主要体现copyinsert): package test.action; //copyinsert实现 private String no1; public void setNo1(String no1) {//普通属性驱动,提供set方法进行接收 this.no1 = no1; } private String no2; public void setNo2(String no2) {//普通属性驱动,提供set方法进行接收 this.no2 = no2; } public void copyinsert(){ service.copyinsert(no1,no2); } } 下面是TestServiceImpl部分代码(主要体现copyinsert): package test.service.impl; @Override public void copyinsert(String no1, String no2){ dao.copyinsert(no1,no2); } } 下面是TestDaoImpl部分主要代码(主要体现copyinsert功能): @Override public void copyinsert(String no1, String no2) { // 获取Session Session session = HibernateUtils.getSession(); try { Transaction tx = session.beginTransaction(); String sql="INSERT INTO t_test (NO,NAME,SEX) SELECT REPLACE (NO,"+"'"+no1+"'"+","+"'"+no2+"'"+"),NAME,SEX FROM t_test WHERE NO="+"'"+no1+"'"+";"; SQLQuery sqlQuery = session.createSQLQuery(sql); List list=sqlQuery.list();//就是这一行!!!!! tx.commit(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } finally { // 释放session session.close(); } 其中,在上述TestDaoImpl代码中,我不太清楚“List list=sqlQuery.list();”的作用,但是如果没有添加这一行代码,运行程序(即点击主界面“复制并插入”按钮)后,数据库没有插入值,myeclipse的Console也没有输出任何新的查询语句; 当在上述TestDaoImpl代码中添加“List list = sqlQuery.list(); ”这一行代码后,再点击按钮运行,数据库仍然没有插入值,但是Console输出了查询语句,但是紧接着会报错,mysql数据库也没有成功插进数据,如图: ![图片说明](https://img-ask.csdn.net/upload/201808/22/1534873763_176501.png) ![图片说明](https://img-ask.csdn.net/upload/201808/22/1534873821_414105.png)
python3爬虫百度图片,结果只能显示60张,后面都是重复
python初学,不太懂哪里出了问题,运行之后显示搜到1020张图片,下载后前60张没有问题,后面就都是和前面一样,仔细一看,在第60张后面的程序又显示了找到关键词,正在下载。于是只能爬60张图片,求大佬们看一下什么情况 ![图片说明](https://img-ask.csdn.net/upload/201901/07/1546856286_507280.jpg)![图片说明](https://img-ask.csdn.net/upload/201901/07/1546856296_484616.jpg) ``` #coding=utf-8 import re import requests from urllib import error from bs4 import BeautifulSoup import os num = 0 numPicture = 0 file = '' List = [] def Find(url): global List print('正在检测图片总数,请稍等.....') t = 0 i = 1 s = 0 while t < 1000: Url = url + str(t) + '&gsm=8c' try: Result = requests.get(Url, timeout=7) except BaseException: t = t+60 continue else: result = Result.text pic_url = re.findall('"objURL":"(.*?)",', result, re.S) # 先利用正则表达式找到图片url s += len(pic_url) if len(pic_url) == 0: break else: List.append(pic_url) t = t + 60 return s def recommend(url): Re = [] try: html = requests.get(url) except error.HTTPError as e: return else: html.encoding = 'utf-8' bsObj = BeautifulSoup(html.text, 'html.parser') div = bsObj.find('div', id='topRS') if div is not None: listA = div.findAll('a') for i in listA: if i is not None: Re.append(i.get_text()) return Re def dowmloadPicture(html, keyword): global num pic_url = re.findall('"objURL":"(.*?)",', html, re.S) # 先利用正则表达式找到图片url print('找到关键词:' + keyword + '的图片,即将开始下载图片...') for each in pic_url: print('正在下载第' + str(num + 1) + '张图片,图片地址:' + str(each)) try: if each is not None: pic = requests.get(each, timeout=10) else: continue except BaseException: print('错误,当前图片无法下载') continue else: string = file + r'\\' + keyword + '_' + str(num) + '.jpg' fp = open(string, 'wb') fp.write(pic.content) fp.close() num += 1 if num >= numPicture: return if __name__ == '__main__': # 主函数入口 word = input("请输入搜索关键词(可以是人名,地名等): ") url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word='+word+'&ct=201326592&v=flip' tot = Find(url) Recommend = recommend(url) # 记录相关推荐 print('经过检测%s类图片共有%d张' % (word, tot)) numPicture = int(input('请输入想要下载的图片数量 ')) file = input('请建立一个存储图片的文件夹,输入文件夹名称即可') y = os.path.exists(file) if y == 1: print('该文件已存在,请重新输入') file = input('请建立一个存储图片的文件夹,输入文件夹名称即可') os.mkdir(file) else: os.mkdir(file) t = 0 while t < numPicture: try: url = url + str(t) + '&gsm=8c' result = requests.get(url, timeout=10) except error.HTTPError as e: print('网络错误,请调整网络后重试') else: dowmloadPicture(result.text, word) finally: t = t+60 print('当前搜索结束,感谢使用') print('猜你喜欢') for re in Recommend: print(re, end=' ') ```
C# ListView 详细信息视图空白
winform 运行程序后Listview有数据,但是切换到详细信息视图就空白了,其他视图全都正常,不知道是什么原因? 数据全都没问题的 链接:https://pan.baidu.com/s/1fR4isB2wspIO7ybBTxSwjw 提取码:lno6 项目我放在了百度, 各位大佬帮我看一下 ``` namespace BookMarksMessages { public partial class Root : Form { public Root() { InitializeComponent(); TreeNode treeNode1 = new TreeNode("根目录"); treeNode1.Text = "根目录"; Directory.Nodes.AddRange(new TreeNode[] { treeNode1}); //BookMarksList.GridLines = true;//显示行与行之间的分隔线 //BookMarksList.FullRowSelect = true;//要选择就是一行 } private void Under_Development_Click(object sender, EventArgs e) { MessageBox.Show("此功能正在开发中...\n敬请期待","开发中...",0); } private void List_Switch(object sender, EventArgs e) { string view = (sender as ToolStripMenuItem).Name.ToString(); this.BookMarksList.View = (View)Enum.Parse(typeof(View), view); } private void ExportToHTML_Click(object sender, EventArgs e) { SaveFileDialog saveFile = new SaveFileDialog(); saveFile.Filter = "所有文件(*.*)|*.*|HTML文件(*.html)|*.html"; //保存时为之前的目录 saveFile.RestoreDirectory = true; //保存文件对话框的默认保存类型,默认索引从1开始 saveFile.FilterIndex = 2; if (saveFile.ShowDialog() == DialogResult.OK) { try { FileStream file = new FileStream(saveFile.FileName,FileMode.Create,FileAccess.Write,FileShare.Write); string str = "测试文本"; //字符串转byte[] byte[] bytes = new UTF8Encoding(true).GetBytes(str); //写入字符串 file.Write(bytes, 0, bytes.Length); file.Close(); MessageBox.Show("保存成功!"); } catch (Exception ex) { MessageBox.Show("文件保存错误:\n" + ex); } } } private void ImportFromHTML_Click(object sender, EventArgs e) { OpenFileDialog openFile = new OpenFileDialog(); //设定只能打开HTML文件,文件类型不用加()不然会出错 openFile.Filter = "HTML文件(*.html)|*.html"; //打开时为之前的目录 openFile.RestoreDirectory = true; if (openFile.ShowDialog() == DialogResult.OK) { try { //打开文件,参数列表: 文件名,打开模式,打开权限,其他可以访问此文件的权限 FileStream file = File.Open(openFile.FileName, FileMode.Open, FileAccess.Read, FileShare.Read); //创建读取文件流实例,参数为: 已打开的文件流,编码方式,一般为默认(操作系统当前的编码) StreamReader sr = new StreamReader(file, Encoding.Default); //读取文件并保存到str字符串 string str = sr.ReadToEnd(); HtmlWeb htmlWeb = new HtmlWeb(); HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); //document.Text获取内容 document.LoadHtml(str); //分别用xpath和正则获取内容 //练习 #region 正则 //Regex reg = new Regex("HREF=\"([^\"]+)\""); //MatchCollection result = reg.Matches(document.Text); //string href = ""; //foreach (Match m in result) //{ // reg = new Regex("\".+\""); // Match a = reg.Match(m.ToString()); // href = href + a.ToString() + Environment.NewLine; //} //reg = new Regex("[^\"]+"); //result = reg.Matches(href); //string href1 = ""; //foreach (Match m in result) { // href1 = href1 + m.ToString() + Environment.NewLine; //} #endregion #region xpath HtmlNodeCollection htmlNodes = document.DocumentNode.SelectNodes("//a[@href]"); if (htmlNodes != null) { BookMarksList.Clear(); foreach (HtmlNode n in htmlNodes) { HtmlAttribute hrefAtt = n.Attributes["href"]; ListViewItem item = new ListViewItem(new string[] { n.InnerText.Trim(), hrefAtt.Value }); BookMarksList.Items.Add(item); } } #endregion //关闭读取文件流 sr.Close(); //关闭打开文件流 file.Close(); } catch (Exception ex){//错误处理 MessageBox.Show("文件打开错误:\n"+ex.ToString()); } } } } } ```
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
相关热词 c#处理浮点数 c# 生成字母数字随机数 c# 动态曲线 控件 c# oracle 开发 c#选择字体大小的控件 c# usb 批量传输 c#10进制转8进制 c#转base64 c# 科学计算 c#下拉列表获取串口
立即提问

相似问题

11
c语言运行错误 求大佬帮助
6
为什么用python写的flask示例程序无法运行,刚刚接触这个,请大佬指教一下
7
有大佬能看看这个错误怎么回事吗
1
有大佬帮忙看看我这个C语言程序哪错了吗。。
0
一个thinkphp5.1框架的nginx配置问题,关于path_info的错误截断,有大佬帮忙看下是为什么吗?
0
我用这个代码做不出来,希望大佬们能给我一个完整的能运行的程序代码,谢谢。
2
MFC单文档程序运行过程中崩溃无响应?
3
java调用百度或谷歌地图应该怎们弄,各位大佬能不能给个实例
4
C++编程:运行不出结果(我不知道哪里有问题,大佬能帮我看看吗,谢谢。)
1
请问用GAN训练自己的数据集,一直效果不好,有大佬能有经验告知一下吗?
4
求助,求助 问一下大佬们为什么C语言中加了一个 stdlib.h 头文件反而错误运行不了
1
运行python批处理文件,报了一个缺少属性“key”错误,找到源码但是看不懂,求大佬们解答
2
程序在VC运行不了,请求大佬帮帮我看看运行结果是什么?谢谢啦(C++代码)
1
求助论坛大佬,有没有AD运放 opa846,847的元件库啊,可不可以分享给我一份
1
三代测序新手学习:有一个问题请教,求大佬指点
0
求助大佬帮忙看看这个程序
1
c++中多个程序运行,如何保证无论在什么情况下,其中的一个程序总能收到键盘输入呢?
2
ant design pro的登录界面中的登录过程实在不太懂,希望大佬们能给讲解讲解。
1
求大佬帮我看看,一个完数的java程序,运行结果,不知道24怎么也出来了
0
有没有大佬参照Codemirror实现过代码编辑器?