C语言程序问题,谢谢各位

在VS中运行以下程序,在除法部分结果出错了,请各位大神指导下,谢谢。

#include
#include
#include
#define DENSITY 62.4
int main(void)
{double weight,volume;
int size,letters;
char name[45];
printf("Hi!What's your first name?\n");
scanf("%s",name);
printf("%s,what's your weight in pounds?\n",name);
scanf("%f",&weight);
size=sizeof name;
letters=strlen(name);
volume=weight/DENSITY;
printf("Well,%s,your volumn is %2.2f cubic feet.\n",name,volume);
printf("Also,your first name has %d letters,\n",letters);
printf("and we have %d bytes to store it.\n",size);
system("pause");
return 0;

}

结果
volumn的结果是-14833270029408700000000000000000000000000

但在VC中运行结果为2.72,这是正确的。

1个回答

改成 scanf("%lf",&weight); 就对了。
因为 单精度和双精度数据都是存的二进制,位数也不一样,当你将一个double双进度数据读成一个float单精度数据,
系统会截取部分数据去填充。

wy_9434
wy_9434 回复whandwho: 谢谢
一年多之前 回复
whandwho
大川里的小川人 lf 不是long double的意思,是 双精度,float是单精度,用%f,double是双精度,用%lf, 分别是由32个bit,64个bit表示一个数,如果你double变量后,用%f 去读取,那么就会是64bit 转换为 32bit的数字表示,会有精度损失,读取的值完全不同。
一年多之前 回复
whandwho
大川里的小川人 回复wy_9434: lf 不是long double的意思,是 双精度,float是单精度,用%F,double是双精度,
一年多之前 回复
wy_9434
wy_9434 回复whandwho: 不过结果是正确了
一年多之前 回复
wy_9434
wy_9434 回复whandwho: 写成lf,不是成了long double了
一年多之前 回复
whandwho
大川里的小川人 因为 你的变量定义是 double双精度的,所以需要使用 lf。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c语言问题求教各位,程序无法得出结果只能得到地址貌似,谢谢
#include<stdio.h> int*paixu(int a[],int n); int main(void) { int number[12]={12,13,2,14,6,29,52,10,12,13,44,56}; int*p; p=paixu(number,12); for(int i=0;i<size;i++) printf("%d,",*(p+i)); return 0; } int*paixu(int a[],int n) 讲数组分成二部分 { 冒泡排序处理前6个数字 int s,w,temp1; for(s=0;s<n/2-1;s++) { for(w=0;w<n/2-1-s;w++) { if(a[w]>a[w+1]) { temp1=a[w]; a[w]=a[w+1]; a[w+1]=temp1; } else continue; } } 冒泡排序处理后6个数字 int y,r,temp2; for(y=0;y<n/2-1;y++) { for(r=0;r<n/2-1-y;r++) { if(a[6+r]>a[6+r+1]) { temp2=a[6+r]; a[6+r]=a[6+r+1]; a[6+r+1]=temp2; } else continue; } } int m[12]; for(int h=0;h<n;h++) 将两部分在按顺序排一下 { if(a[h]<a[6+h]) m[h]=a[h]; else m[h]=a[6+h]; } return m; }
C++程序输出(求解答,谢谢各位)
运行下面的程序,无论a的大小,为什么输出的总是a的值? #include<iostream> using namespace std; int main() { int a,b,c; cin>>a>>b; if(a>b) c=a; else c=b; cout<<"max="<<c<<endl; }
麻烦各位前辈看一下我这个C语言程序,找不出错误。
我要对一个数组的数字进行排序,代码是这样的: //声明:该程序中输入的数据不能重复! #include<stdio.h> int imin(const int va[], int n) // find the min of va[] { int i, min; min = va[0]; for (i = 0; i < n; i++) { if (min > va[i]) min = va[i]; } return min; } int imax(const int va[], int n) { int i, max; max = va[0]; for (i = 0; i < n; i++) { if (va[i] > max) max = va[i]; } return max; } /*--------------------------------------*/ int main(void) { int i, j, m, n, min, max; printf("请输入数据个数:"); scanf("%d", &n); //读取数据个数 int va[100], vb[100]; for (i = 0; i < n; i++) { printf("[%d]:", i + 1); scanf("%d", &va[i]); } //读取各个数据到数组 max = imax(va, n); //确定最大值 for (m = n; m > 1; m--) { min = imin(va, m); for (i = 0, j = 0; i < m; i++) if (va[i] > min) vb[j] = va[i]; j++; for (i = 0; i < m - 1; i++) va[i] = vb[i]; va[m - 1] = min; } for (i = 0; i < n; i++) { printf("%d\n", va[i]); } } 我的思路是将中最小的挑出来,比这个大的都放在另一个数组,再把另一个数组复制到原数组,最后会少一个,把最大的放在最后,再从除最大的中挑出第二大的,再重复之前的步骤,一直执行下去。可运行结果跟我想象的不大一样,看了很久还是不知道错在哪,麻烦各位csdn的前辈帮我看一下是错在哪里?谢谢。
C语言连续加减问题sign=-sign
题目有一个数组data有100个元素,求data[0]-data[1]+data[2]-data[3]+...-data[99]。 **我的部分出错程序是:** ![图片说明](https://img-ask.csdn.net/upload/201503/04/1425461747_433837.png) 运行结果是-1.QNAN00000000无效植。 **若用标记符号sign=-sign ,其程序是:** ![图片说明](https://img-ask.csdn.net/upload/201503/04/1425462212_189166.png) 运行结果则是正确的。 请问为什么我那样写的程序是错误的,那样子写不也是data[0]-data[1]+data[2]-data[3]+...吗? 学C语言没多久,所以问的问题有些简单,烦请各位大神给指导指导,谢谢啦
c语言指针问题,谢谢大家
各位,有时间可以帮我看一下如何使用这个指针呢?34行 问题:房间排序 为了更好地接待在这期间来自世界各地的参观者,如何合理安排各宾馆的住房问题提到了日程。组委会已接到了大量的客户住宿定单,每张定单的内容包括要住宿的房间数,开始住宿时间和要住的天数。为了便于整个城市各宾馆的管理,组委会希望对这些定单进行安排,目的是用尽可能少的房间来满足这些定单,以便空出更多的房间用于安排流动游客。 假设:某个定单上的游客一旦被安排到某房间,在他预定住宿的期间内是不换房间的。为了简化描述,定单上的开始住宿时间为距离现在的第几天。例如,定单为(10,30,5)表示游客要求使用10个房间,第30天开始连住5天。 第一行:T 表示有T组测试数据 每组测试数据第一行:N 表示定单数 每组测试数据接下来有N行,每行有三个整数 A B C 表示房间数,开始住宿时间和天数 1<=T<=100 1<=N<=10000 1<=A<=10 1<=B<=180 1<=c<=10 输出 输出一个整数,为满足所有定单要求的最少房间数。 思路:本题只和开始日期A和结束日期B之间的关系有关 1:先求出最小截止日期 2:将输入的数据按开始日期进行从小到大排序 3: 若是A<B;则total=total+输入数据的房间数 A>=B 分二种情况:1,total<输入元素的房间数,则total=输入元素的房间数 2,total>输入元素的房间数,则total=total+0 代码如下:(34行不会声明合适的指针使其指向stu[].deadline,并可以通过函数循环至stu[1].deafline stu[2].deadline) // 房间安排.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" int maopao(int*p,int n); int _tmain(int argc, _TCHAR* argv[]) { int s=0; int n=0; int i=0; struct hotel { int room; int date; int during; int deadline; }; hotel stu[10000]; printf("请输入测试数据组数:\n"); scanf("%d",&n); printf("请输入每组的订单数:\n"); scanf("%d",&s); while(n--) { for(i=0;i<s;i++) { scanf("%d",&stu[i].room); scanf("%d",&stu[i].date); scanf("%d",&stu[i].during); stu[i].deadline=stu[i].date+stu[i].during; } for(int y=0;y<s-1;y++) //以开始日期为条件将结构按从小到大的顺序排出 { for(int u=0;u<s-1-y;u++) { if(stu[u].date>stu[u+1].date) { hotel temp=stu[u]; stu[u]=stu[u+1]; stu[u+1]=temp; } } } int*p; p=; //此处已经将结构按起始日期从大到小进行排序了4 9 6 3 10 4 3,12,6 int re=maopao(p,s); int w=0; int total; while(w<s) { if(stu[w].date<re) total=total+stu[w].room; if(stu[w].date>=re&&total>stu[w].room) total=total+0; if(stu[w].date>=re&&total<stu[w].room) total=stu[w].room; w++; } printf("%d\n",total); } return 0; } int maopao(int*p,int n) { for(int i=0;i<n-1;i++) for(int q=0;q<n-1-i;q++) { if(*(p+q)>*(p+q+1)) { int num=*(p+q); *(p+q)=*(p+q+1); *(p+q+1)=num; } } return *(p+0); }
C语言数组应用,不会写下面这个程序
从键盘输入一个数,将他插入到一个已经排好序的数组中,要求插入后数组仍然按原次序排列
C语言问题 输入一个句子,编写程序判断手机键盘上需要按几次才能打印出来这句话求一个总和?
C++题目 输入一个句子,编写程序判断手机键盘(九宫格)上需要按几次才能打印出来这句话求一个总和 最近有些荒废-数组问题,有点无头绪,请各位指导一下。谢谢!
C语言getchar不读取EOF问题
![图片说明](https://img-ask.csdn.net/upload/201503/23/1427102788_984290.png) 各位前辈,我的问题是,当我调试下面的c程序的时候,有一个不懂的地方在于: 右边输入了I am a student^Z(ctrl+z),但是当whilie循环中的c=getchar()在读完了c=t(最后一个字符t)之后,getchar就不继续读取了,即getchar不继续读取^Z了,也即while循环不退出,这是怎么回事。请各位大神解答,谢谢。。 #include <stdio.h> #include <malloc.h> int getline(char *s, char lim) { int i, c; i = 0; while (--lim > 0 && (c = getchar()) != EOF && c != '\n') s[i++] = c; if(c == '\n') s[i++] = '\n'; s[i] = '\0'; return i; } int main() { char *s = (char*)malloc(sizeof(char) * 100); printf("%4d", getline(s, 100)); }
C语言 这个问题的意思不懂 麻烦大家解释一下 谢谢了
#include "stdio.h" void main() { 当运行以下程序时,从键盘上输入China#,则下面程序运行结果为 int v1=0,v2=0; char ch; while((ch=getchar())!='#') switch(ch) { case 'a': case 'h': default :v1++; case 'o':v2++; } printf("%d,%d\n",v1,v2); }不知道这段代码什么意思 请各位解释一下 解释的越详细越好 谢谢了
C语言关于printf函数的问题
这是教材上的一道题。 为什么下面程序运行结果与源代码一模一样: #include <stdio.h> main(){char*a="main(){char*a=%c%s%c;printf(a,34,a,34);}";printf(a,34,a,34);} “printf(a,34,a,34)”这一句我没有想明白,百科上说“printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)”,但这里没有“格式化字符串”,我也不懂参量表是什么东东。 我现在的想法是由于字符串本身就是地址,printf(a,34,a,34)中的a就是"main(){char*a=%c%s%c;printf(a,34,a,34);}"的地址,但我改成printf(a)后,打印会有乱码。另外printf中的34起到了什么作用? 小弟刚刚学习C语言,还请各位指教,先谢谢了!
c语言文件读写遇到的问题
``` #include <stdio.h> #include <stdlib.h> int main() { FILE *fp;FILE *fp2; fp=fopen(".//file.txt","w"); fprintf(fp,"???????????????"); fclose(fp); fp2=fopen(".//file.txt","r"); printf("0"); while(!feof(fp2)) { printf("1"); } fclose(fp2); return 0; } ``` 该程序一运行就一直输出1,我在另一个程序也遇到这个问题,需要尽快解决,谢谢各位
使用C语言extern的出现的问题
#include<iostream> using namespace std; extern int i; extern void fun(); int main() { i=0; fun(); system("pasue"); return 0; } int i; void fun() { ++i; cout<<i<<endl; } 程序运行时在异常中自动退出,还请各位不吝赐教,谢谢!
C语言程序设计第二版 1.6数组练习1-13打印输入中单词长度的直方图的问题
/* Note:Your choice is C IDE */ #include "stdio.h" #define MAXHIST 15 //柱状图长度 #define MAXWORD 11 //单词长度 #define IN 1 #define OUT 0 void main() { int c,i,nc,state; int len; int maxvalue; //wl[]的最大值 int ovflow;//溢出单词数 int wl[MAXWORD];//单词长度计数 state =OUT; nc=0; //一个单词字符数目 ovflow=0; //超出单词长度的单词数 for(i=0;i<MAXWORD;++i) wl[i]=0; while((c=getchar())!=EOF) { if(c==' '||c=='\n'||c=='\t') { state=OUT; if(nc>0) if(nc<MAXWORD) ++wl[nc]; else ++ovflow; nc=0; } else if(state==OUT) { state=IN; nc=1; } else ++nc; } maxvalue=0; for(i=1;i<MAXWORD;++i) if(wl[i]>maxvalue) maxvalue=wl[i]; for(i=1;i<MAXWORD;++i) { printf("%5d-%5d:",i,wl[i]); if(wl[i]>0) { if((len=wl[i]+MAXHIST/maxvalue)<=0) len=1; } else len=0; while(len>0) { putchar('*'); --len; //为什么要--len? } putchar('\n'); } if(ovflow>0) printf("there are %d words >=%d\n",ovflow,MAXWORD); 问题:1 if((len=wl[i]*MAXHIST/maxvalue)<=0) len=1; 这段话表示什么意思?与下面的while语句有什么关系 问题:2 while(len>0) { putchar('*'); --len; }这段话与上面的if((len=wl[i]*MAXHIST/maxvalue)<=0)有什么关系吗? 问题3: 为什么一定要求最大数值?且以此为标准? for(i=1;i<MAXWORD;++i) if(wl[i]>maxvalue) maxvalue=wl[i]; } 求各位帮个忙解答疑惑!!!谢谢!!!
关于安卓开发的来自计算机学生的非技术问题
来自计算机学生的真诚发问 1.请问想要做出一个app的话,在会c语言的情况下,我知道还要学习java和安卓开发,想一年时间内做出一个app(虽然我知道这个问题的答案可能在我们学完java和初步了解安卓之后会有,但是因为目前时间紧急我们的策划要提交了,我们对开发的具体分工还较忙然,所以想来提前问一下)在这个前提下,请问一年时间可行吗? 2.我们有三个人,请问具体开发部分的人员分配问题怎么样比较好呢? 或者不做app的话,我们做微信小程序可行吗?微信小程序在不会安卓开发的情况下是不是会比app更难懂一些呢? 3.在问问题的地方发文,抱歉占用一点公共资源,不好意思,希望我的问题能得到各位专业的朋友解答,谢谢
C语言中字符数组作为函数返回值时出现的问题
我想请教一个问题,我在C语言中用字符数组作为函数返回值时,会在返回后多出一个0x01对应的字符,下面贴出程序和调试过程: 子函数如下: ```c char *guess_num(int gen_data[], int input_data[], int n) { int i = 0, j = 0, k = 0; static char result[NUM_GUESS]; for(i = 0; i < n; i++) for(j = 0; j < n; j++) if(0 == input_data[i]-gen_data[j]) { if(0 == i-j) result[k++] = 'A'; else result[k++] = 'B'; } if('\0' == result[0]) for(i = 0; i < n; i++) result[i] = '0'; return result; } ``` 测试情况如下: 第一个测试 ![返回前](https://img-ask.csdn.net/upload/201705/08/1494222074_932652.png) ![返回后](https://img-ask.csdn.net/upload/201705/08/1494222104_649849.png) 可以看到,当字符数组的四个元素都被赋值之后,返回前没有问题,但是当主函数接收到返回的字符数组的首地址之后,字符数组后面会多出一个1. 第二个测试 ![返回前](https://img-ask.csdn.net/upload/201705/08/1494221980_315560.png) ![返回后](https://img-ask.csdn.net/upload/201705/08/1494221998_129015.png) 当字符数组元素未全部赋值时,返回没问题 第三个测试 ![返回前](https://img-ask.csdn.net/upload/201705/08/1494222090_919784.png) ![返回后](https://img-ask.csdn.net/upload/201705/08/1494222109_274407.png) 又看到了熟悉的1。。。。。。。 烦请各位能否帮我解答这个问题,谢谢!
c语言编程问题,编写函数实现给定功能
编写一个已经从小到大排好序的一维数组目的是把里面重复的删除例如原来的数组是 2 2 2 3 3 4 5 5 6 6 6 6 7 8 9 10 10,程序运行完为2 3 4 5 6 7 8 9 10,我自己写出来了,但是不知道哪里出错了,求各位大神帮帮忙 int i; n=0; for(i=0;i<N;i++) { if(a[i]<a[i+1]) {a[n]=a[i];n++;} } return n; } 这里的a数组是题目给出来的,N是a数组里面元素个数,n是程序结束后a数组里面还有多少个元素。在线等,谢谢!
C语言 新奇版猜数字 各位大佬帮帮忙
C语言 新奇版猜数字 大哥大姐帮帮忙 由电脑随机生成数,再由电脑猜,新奇版的猜数字游戏,用几A几B表示位置和数正确与否,尽量用最少的步数猜出来。 要步数最少的,可以帮我把每步的意思注释一下,谢谢各位大神。 前面代码已经给出,只需补全int guess中的就行,我也做出了标识。 猜数字,计算机随机生成1个3或4位的十进制整数,各个数位上的数字各不相同,用户给出猜测,计算机回答XAYB(X个位置和数字猜中,Y个数字猜中但位置错误),重复用户猜计算机回答的过程,直到猜中为止(3A0B,4A0B)。 这里,将给出若干组相关的数据供猜测(即第i把猜123,第j把不可能是123)。比谁的程序猜测的总次数最少。 文件“猜数字测试代码.txt”是给学生的,函数int guess(int A,int B)是学生需要完成的,其中参数A和B就是计算机根据上次猜测返回的结果,若是3A0B(以猜3个数为例),表示新一把猜测的开始。目前,guess中的代码,可供人机交互,学生提交时应该删除。 文件“8数码拼图测试代码.txt”是提供给教师的,这里简单地采用“随机+排除”的方法(但针对的是不相关的数据),猜3个数的和人的水平差不多,猜4个数比人厉害。 #include #include #define M 4 //猜几个数字 //交换 void swap(int*a,int*b) { int t=*a; a=*b; *b=t; } //将数组随机打乱 void random_shuffle(int a,int n) { int i; for(i=0;i<n;i++) { int x=rand()%n; int y=rand()%n; if(x!=y) swap(a+x,a+y); } } //生成数位不重复的M位全部数据,存在数组a中,并打乱,备用 int gen(int* a) { int count=0,i,j; int max=1; for(i=0;i<M;++i,max*=10); for(i=0;i<max;++i) { _Bool flag[10]={0}; int t=i; for(j=0;j<M;++j) if(flag[t%10]) break; else flag[t%10]=1,t/=10; if(j==M) a[count++]=i; } random_shuffle(a,count); return count; } void test(int answer,int player,int* A,int* B) { int i=0,j; int answer_a[M]={0},player_a[M]={0}; *A=*B=0; while(answer||player) { answer_a[i]=answer%10; player_a[i++]=player%10; answer/=10; player/=10; } for(i=0;i<M;++i) for(j=0;j<M;++j) if(player_a[i]==answer_a[j]) if(i==j) ++*A; else ++*B; } //参数AB是上一轮猜测的反馈, //如果得到猜中的信息表示下一把的开始 int guess(int A,int B) { ** //你的工作在这个函数** int x; 在这里输入代码: return x; } int main() { srand(2); int i; //初始生成数据 int len; for(len=1,i=0;i<M;++i) len*=10-i; int a[len]; gen(a); //开玩 int n=1;//玩n把 int count=0;//总猜测次数 while(n--) { //每把从猜中开始,例如玩4个数,4A0B为猜中, //此时进入下一把,会有新的数供猜测 //printf("%d\n",a[n]); int A=M,B=0; int count_cur=0; do { int player=guess(A,B); ++count_cur; test(a[n],player,&A,&B); printf("%d:%0*d,%dA%dB\n",count_cur,M,player,A,B); }while(A!=M||B); count+=count_cur; } return 0; }
编写了一个程序,没有报错但是不能正常运行,请各位前辈帮忙看看
#include<stdio.h> #include<string.h> #include<math.h> struct Data /*定义结构体,每组包含元素名称和电负性两个信息*/ { char cElement[3]; /*元素名*/ double fElectronegativity; /*电负性*/ }data[]={{"H",7.18},{"Li",3.01},{"Be",4.9},{"B",4.29},{"C",6.27}, {"N",7.30},{"O",7.54},{"F",10.41},{"Na",2.85},{"Mg",3.75}, {"Al",3.23},{"Si",4.77},{"P",5.62},{"S",6.22},{"Cl",8.30}, {"K",2.42},{"Ca",2.2},{"Sc",3.34},{"Ti",3.45},{"V",3.6}, {"Cr",3.72},{"Mn",3.72},{"Fe",4.06},{"Co",4.3},{"Ni",4.40}, {"Cu",4.48},{"Zn",4.45},{"Ga",3.2},{"Ge",4.6},{"As",5.3}, {"Se",5.89},{"Br",7.59},{"Rb",2.34},{"Sr",2.0},{"Y",3.19}, {"Zr",3.64},{"Nb",4.0},{"Mo",3.9},{"Ru",4.5},{"Rh",4.30}, {"Pd",4.45},{"Ag",4.44},{"Cd",4.33},{"In",3.1},{"Sn",4.30}, {"Sb",4.85},{"Te",5.49},{"I",6.76},{"Cs",2.18},{"Ba",2.4}, {"La",3.1},{"Hf",3.8},{"Ta",4.11},{"W",4.40},{"Re",4.02}, {"Os",4.9},{"Ir",5.4},{"Pt",5.6},{"Au",5.77},{"Hg",4.91}, {"Tl",3.2},{"Pb",3.90},{"Bi",4.69},{"CW",4.69}}; /*CW 表示错误*/ int main() { int n; /*n为第几个元素,g为元素个数,sum为开根数*/ int i;float g; /*i为数组循环*/ long double product,result,sum,Eg; /*product为乘积,result为结果*/ char *c; /*c为输入元素名*/ printf("-------------------------欢迎使用本程序------------------------\n"); printf("--------------本程序可用于计算半导体导带及价带位置-------------\n"); printf("-----------------通过给出带隙宽度及分子式即可计算--------------\n"); printf("------注意:本程序不能识别大小写,请输入元素时务必正确输入-----\n"); printf("------------如铁元素请输入Fe,元素个数输入阿拉伯数字-----------\n"); printf("--------------------输入完成请输入end或End---------------------\n"); /*引言部分*/ printf("---------------------------------------------------------------\n\n\n"); printf("------------------------请输入带隙宽度-------------------------\n"); scanf("%lf",&Eg); n=1;result=1; sum=0; while(1) { printf("请输入第%d个元素\n",n); scanf("%s",&c); i=0; while(strcmp(data[i].cElement,c)!=0&&strcmp(data[i].cElement,"CW")!=0&&strcmp(data[i].cElement,"end")!=0&&strcmp(data[i].cElement,"End")!=0) { i++; } if(strcmp(data[i].cElement,"end")!=0||strcmp(data[i].cElement,"End")!=0) { break; } else if(strcmp(data[i].cElement,"CW")!=0) { printf("请检查您输入的元素是否正确"); } else { printf("请输入第%d个元素在分子式中的个数\n",n); scanf("%f",&g); product=pow(data[i].fElectronegativity,g); result=result*product; sum=sum+g; } n++; } result=pow(result,1/sum); printf("ECB=%fl.2",result-4.5-Eg/2); printf("EVB=%fl.2",result-4.5+Eg/2); getchar(); return 0; } 输入2.2 Fe后跳出图片所示内容 小弟是自学编程,请各位前辈老师不吝赐教,谢谢您的帮助!
C语言实现数字滤波的方法
本人现做数字电源,由于纹波大导致采样跳动,现想用数字滤波解决这个问题,但是由于本人知识有限,用MATLAB生成头文件之后,编写出来的程序始终不行,还请各位大侠不吝赐教,本人感谢不尽……谢谢
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
使用 Docker 部署 Spring Boot 项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
Android 9.0 init 启动流程
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、启动流程概述一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。...
相关热词 c# 图片上传 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd
立即提问