作业班子
作业班子
关注数: 2
粉丝数: 8
发帖数: 862
关注贴吧数: 1
吧主请进 我在新浪微博上关注到你。可否私聊
请问春丽的逆向跳踢怎么发? 如上, 另外kkkkk 如何在combo中快速发出来? 我总是 要不停的按lk 即使发出来感觉也挺鸡肋了,不能瞬发就打不到对手
无聊自己写的 // mkf.cpp: 生成垃圾文件。 #include "stdafx.h" #include "windows.h" #include "TCHAR.H" #include <ios> #include <fstream> #include <ctime> #include <iostream> #include <string> using namespace System; using namespace std; //获取随机字符串 wstring GetRandString(); //创建ini垃圾文件 void CreateIniFile(wstring s, LPWSTR szDir); //递规遍历文件夹 void TraverseDir(LPCWSTR lpszPath); //cList字符串数组 由0-9 a-z A-Z组成 用于生成随即的字符串 wchar_t cList[62] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; int main() { //播下随机数 srand(unsigned(time(0))); //生成垃圾文件夹路径 LPCWSTR dirRoot = _T("F:\\ryc"); TraverseDir(dirRoot); return 0;
无聊自己写的 // mkf.cpp: 生成垃圾文件。 #include "stdafx.h" #include "windows.h" #include "TCHAR.H" #include <ios> #include <fstream> #include <ctime> #include <iostream> #include <string> using namespace System; using namespace std; //获取随机字符串 wstring GetRandString(); //创建ini垃圾文件 void CreateIniFile(wstring s, LPWSTR szDir); //递规遍历文件夹 void TraverseDir(LPCWSTR lpszPath); //cList字符串数组 由0-9 a-z A-Z组成 用于生成随即的字符串 wchar_t cList[62] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; int main() { //播下随机数 srand(unsigned(time(0))); //生成垃圾文件夹路径 LPCWSTR dirRoot = _T("F:\\ryc"); TraverseDir(dirRoot); return 0;
一年多没有来了,冒个泡 如题
关于阿飞是不是班。 这个问题我一直在想。确实有点迷糊。如果不是那么到底是谁?其实只有说“是”才能比较解释通顺。记得迪达拉死的时候有人在旁边说了一句:“阿飞死了就算了。迪达拉那种实力的人死了确实可惜了。”好象晓里面的人都知道阿飞的实力不怎么样。也许是因为班隐藏了身份。装作啊飞混入晓。假如晓组织的时候。佩恩和小南两个人肯定是知道班的身份的,也只有他们两个人知道吧。不过我猜想也许鼬也知道班。但是他有自己的计划吧。
我有好长时间没有看到smilewindy2004了
曾经走过的路 来公司已经两个月了,在这里做的主要是web开发,用javascirpt,html,php,mssql,相对于c来说,javascript算比较简单的。在c里面很多需要用复杂的语句实现的功能已经写成了现成的库函数,比如你不需要专门写一个算法来计算两个字符串的匹配。可以直接用正则表达式对象,你不需要专门分开写几个链表和数组来存储不同的字符和纯数字混合的变量。可以直接用array对象。当然,类似还有很多。但是,c是基础。学好c,学好数据结构和算法,当你在使用高级语言的时候。你可以写出比一般的人更加高效,更加简练的程序。你可以想到人家想不到的思路和方法。可以少走很多弯路。当我现在回头在看当时在家里自学走过的几个月艰难的道路的时候,心里会有阵阵的窃喜,确实是当时学得还算不错的基础,帮住我来这里站住了脚跟。因为基础语句掌握的很牢固,所以我来公司开始后期的学习,没有遇到多大的困难(当然困难还是有的)。当时的想法很简单:考过二级,对计算机的了解深入一点,好找工作,其实我丝毫没有想到今天我会走上程序员的道路。那个时候在家里,每天对着屏幕,一题题的做书上的习题。找一些有意思的东西,写简单的程序和算法。一天天过去了,当我看完了三四本基础的书以后,当我从c看到数据结构,当我看到太难的地方实在学不过去的时候。我发现,写程序已经变成了我的一种兴趣和爱好。或者说,它已经融入我的生活。哥跟我说:你要是想做软件,去贵州吧,我有个朋友在哪里,去学技术。.....我记得来公司的第一天,老总跟我说一句让我印象深刻的话:"...来了,你要有压力,我不希望到时候看到你做不好,我叫你哥把你领回去."当时我有一个理想,即使没有学过一天的计算机的课程,我也要做中国最优秀的程序员。学习期限是两个月。开始的三四周(第一周是学习其他的东西),每天从早到晚,拿着javascript,php和mssql的基础书籍,狂啃。对这屏幕,代码,代码。不停的敲。当我有一天发现,我居然在如此短的时间里面,把这些基础都掌握了的时候,我知道,迟早有一天,我会实现自己的理想。项目组长分给我第三周的任务。熟悉公司已有的系统,修改。一个最简单的模块,7个文件,近四五千行代码,一下字塞在我面前。晕天转地,我从来没有接触过这么多的代码,前后台的控制,相当复杂。好多不懂的东西,我想起项目经理跟我说过的一句话:“基础是关键”。当时我就想,自己选择的道路,一定要走下去。耐着性子,一点点的看,一条语句,一条代码的看,看到我忍耐不了,心绪紊乱的时候。还在跟自己说,坚持,坚持。总会过去的。当我把第四周任务提交的时候,组长跟我说,行了,你入组了。。我能和那些学计算机专业的同志一样做得好工作。不要说c难学,难是因为你不喜欢,你不爱好,你不是真正把它当你的朋友。同事跟我说编程是一门艺术。我笑笑。小的时候我就很羡慕那些会写程序的人,羡慕黑客,他们牛啊,能写出一些常人看不懂的奇怪符号,然后把电脑玩转,如掌中物。直到今天,我依然觉得写程序是让人羡慕的事情。你可以写人家看不懂的东西,然后别人会说,牛x。需要做的,只是静下心来克服你所遇到的困难。看到你的目标,然后前进。
这周公司没什么任务,写了个简单日历 公司的开发主要是用javascript语言,所以日历也是javascript写的,功能不够完善,还有语句也不够简练。当然如果用c写的话,还要复杂许多。
同事的母亲得了白血病 今天去医院探望了一下,听说后期治疗需要50-100w,悲哉,世态炎凉啊,老总都劝她放弃治疗,家里没有钱,还有个弟弟在读书。
求算法 1 2 3 4 5 6 7 8 9 = 99中间填入+ -号,数字可以粘在一起,不顺序不能颠倒想不出来,考虑情况太复杂了
悲哀 公司的笔试题目居然出到了用html和javascript写出求两个数的最大公约数和最小公倍数,然后把结果显示出来,这么简单还是没有能通过的,现在学计算机的,就没几个好好读书了.来的都是大学本科,研究生,居然就没有通过考试的..我越来越鄙视中国的高等教育了.
最近不学算法 一个月我要学html jscript sql php,到时候项目考核,过不了关老总就要赶我的人,压力很大。水完就走。
水一下就走 如题,
最近很忙 今天出去爬山 很累 这是一排粗体字 这是一排斜体字 这一一排有底线的字 这是显示上标 字体放大再显示效果 这是显示下标测试一下看baidu能不能用超文本标记语言
3阶魔方阵的算法 只处理奇数阶一个解的情况,算法有什么错误呢void magicmatrix(int arr[2][2]){ int i = 0; int j = 1; int k; arr[0][1] = 1; for(k = 2;k<10;i++) { if((k - 1) % 3 == 0)/*如果当前数是三的倍数*/ { i++; arr[i][j] = k;/把下一个数放到当前数正下方/ } else { i = i - 1; /*一般情况下,下一个数放在当前数的右下方*/ j = j + 1; /* */ if(i < 0) i = 2;/*如果当前位置在第一行,下一个数放到最后一行*/ if(j > 2) j = 0;/*如果当前位置在最后一列,下一个数放在第一列*/ arr[i][j]= k; } }}
最近很闲 ..如题,不知道有没有什么有意思的东西研究一下呢.
几天没来了,吼吼 家里的事情都搞完了,要去上班了,心情好复杂,最近在家抓紧时间打游戏.好忙来水一下..HOHO
教授 学生都快放假了吧,最近c吧求作业的人数暴增,嘿嘿是不是你搞了那么多作业为难他们啊.
问一下如何清楚掉getchar()后面的回车符号 如题.老没注意这个问题.
二叉树建立 #include "stdlib.h"#include "stdio.h"#define end '#' //定义结束符号 typedef char ElemType;typedef struct node{ ElemType d; //元素类型 struct node *lchild; //左孩子 struct node *rchild; //右孩子 }BTnode;void create(BTnode *p){ ElemType x; x = getchar(); if(x == end) { p = NULL; return ;} //如果为结束符,返回 else { p = (BTnode *)malloc(sizeof(BTnode)); //申请一个子结点 p->d = x; create(p->lchild); create(p->rchild); } //最后返回根结点 }void print(BTnode *p){ printf("%c ",p->d); print(p->lchild); print(p->rchild); return ; }int main(){ BTnode *bt,*q; bt = NULL; q = NULL; create(q); //print(bt); system("pause"); return 0;}/*二叉链表的前序生成原则是 1输入根结点值 2若左子树不为空,则输入左子树,否则输入一个结束符,3若右子树不为空,则输入右子树,否则输入一个结束符*/
Astar2007百度之星程序设计大赛网络资格赛 第一场1.水果开会时段每个百度工程师团队都有一笔还算丰裕的食品经费,足够每天购置多种水果。水果往往下午送达公司前台。前台的姐姐们只要看到同时出现五种或以上的水果,就称之为“水果开会”。从搜索引擎切词的语法角度,只要两种水果的名字中有一个字相同就属于同样的类别。例如“小雪梨”和“大雪梨”是同一种水果,而“核桃”和“水蜜桃”也被认为是同一种水果。尤其要指出的是,如果有三种水果x, y, z同时在前台出现,且x和y是同一种水果,y和z也是同一种水果的时候,x和z在此时也被认为是同一种水果(即使x和z并不包含相同的字)。现在前台的姐姐们想知道,今天是否有“水果开会”——五种或更多的水果同时在前台出现。输入格式输入的第一行只有一个整数n,表示购置水果的组数。接下来的n行表示水果的到达时间、取走时间(时间用1200到1900之间的正整数表示,保证取走时间大于到达时间)。剩下的字符串以空格分割每一种水果。如“1400 1600 雪梨 水蜜桃”,表示下午两点到四点(包含两点和四点这两个时间点),雪梨和水蜜桃会在前台等待开会。每种水果名称由不超过十个汉字组成。输出格式输出仅一行,包含一个字符串Yes或No,分别表示今天水果开会与否。 输入样例1 例31200 1400 雪梨 柠檬1300 1400 西瓜 苹果1400 1800 花生 水蜜桃 输出样例1 例Yes输入样例2 例31200 1400 雪梨 柠檬1400 1500 哦 大梨 呀1500 1800 咦 大梨输出样例2 例No 样例解释在样例1中,时刻1400有六种水果在前台;在样例2中,由于雪梨和大梨在任何时刻都是同一种水果,最多只有四种水果同时在前台。 评分规则1程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超过1秒,否则该用例不得分;2要求程序能按照输入样例的格式读取数据,按照输出样例的格式将运行结果输出到标准输出上。如果不能正确读入数据和输出数据,该题将不得分;3该题共有10个测试数据集,每组数据均满足n<=10,每个时段最多有10个水果,一共不超过50个水果;4该题目20分。
哈夫曼编码生成程序 #include #include #define MaxSize 50typedef struct{ char c; //代码; int w; //代码权值; char code[MaxSize]; //代码的Huffman编码; }HuffCode[MaxSize];typedef struct{ int Weight; //权值; int LChild,RChild,Parent; }HTNode,HuffTree[MaxSize];//================================================================================void HuffmanTree(HuffTree HT,int length,HuffCode hc); //生成Huffman树;void SelectHTNode(HuffTree HT,int n,int *min1,int *min2); //查找最小和次小序号;void HuffmanCode(HuffTree HT,int len,HuffCode hc); //生成Huffman编码;//================================================================================int main(void){ HuffTree HT; //Huffman树; HuffCode HC; //Huffman编码; int i,len; printf("<<<< Huffman编码生成程序 >>>>\t\tby Haroldi.\n\n 请帮助评价一下思路及改善意见!\t多谢了:-)...\n\n\n\n"); printf("\n输入代码数量:"); scanf("%d",&len); system("cls");printf("代码数量:%2d\n\n",len); printf("输入代码及权值(e.g.: \"a16[回车]\" ):\n"); for(i=1;i <= len;i++) { while(getchar() != '\n') NULL; printf("No.%2d: ",i); HC[i].c = getchar(); scanf("%d",&HC[i].w); } HuffmanTree(HT,len,HC); HuffmanCode(HT,len,HC); printf("\n输出Huffman编码:\n"); for(i = 1;i<=len;i++) { printf("\n %c :",HC[i].c); puts(HC[i].code); }//测试Huffman树结构; printf("\n\n输出Huffman树结构:");system("pause"); printf("\nHT[i]:\t权值\t双亲\t左孩子\t右孩子\n"); for(i = 1;i<2*len;i++) { if(i <= len) printf("(%c)",HC[i].c); printf("%2d:\t %2d;\t%2d,\t %2d,\t %2d.\n",\ i,HT[i].Weight,HT[i].Parent,HT[i].LChild,HT[i].RChild); } return 0;}//================================================================================void HuffmanTree(HuffTree HT,int length,HuffCode hc) //Huffman树初始化;{ int i,min1,min2; HT[0].Weight = 65535; for(i = 1;i <= length;i++) { HT[i].Weight = hc[i].w; HT[i].LChild = HT[i].RChild = HT[i].Parent = -1; } for(;i < 2*length;i++) //i初值 = length+1; { HT[i].LChild = HT[i].RChild = HT[i].Parent = -1; } for(i = length+1;i < 2*length;i++) { SelectHTNode(HT,i,&min1,&min2); HT[min1].Parent = i; HT[min2].Parent = i; HT[i].LChild = min1; HT[i].RChild = min2; HT[i].Weight = HT[min1].Weight + HT[min2].Weight; }}//================================================================================void SelectHTNode(HuffTree HT,int n,int *min1,int *min2) //查找最小和次小序号;{ int i; *min1 = *min2 = 0; for(i = 1;i < n;i++) { if(HT[i].Parent == -1) { if(HT[*min1].Weight >= HT[i].Weight) { *min2 = *min1; *min1 = i; } else if(HT[*min2].Weight > HT[i].Weight) *min2 = i; } }}//================================================================================void HuffmanCode(HuffTree HT,int len,HuffCode hc) //生成Huffman编码;{ int i,j,tc,Stack[MaxSize],top = -1; char flag[MaxSize]; HTNode th; for(i = 1;i <= len;i++) { top = -1; //栈初始化; j = 0; //hc[i].code串首位置偏移; th = HT[i]; //当前结点th; tc = i; //当前结点标记tc; while(th.Parent != -1) { //当前结点th双亲P入栈,由P的孩子是th,确定flag;确定下次结点标记tc; Stack[++top] = th.Parent; if(HT[th.Parent].LChild == tc) {flag[top] = 'L'; tc = th.Parent;} if(HT[th.Parent].RChild == tc) {flag[top] = 'R'; tc = th.Parent;} th = HT[Stack[top]]; //下一结点; } while(top != -1) { if(flag[top] == 'L') hc[i].code[j++] ='0'; else hc[i].code[j++] ='1'; Stack[top--]; //出栈; } hc[i].code[j] ='\0'; //当前串结束; } }//================================================================================
有谁对数据结构这一版块精通一点的, 好多问题都不懂啊,想找人一同研讨
二叉树遍历 #include "stdlib.h"#include "stdio.h"#include "iostream"using namespace std;template struct BTnode{ T d; struct BTnode *left; //左指针域 struct BTnode *right;//右指针域 };template class Binary_Tree{ public: Binary_Tree(){ head = NULL; } //构造函数,初始化二叉树链表为空 void create_Binary_Tree(); //建立二叉树链表 void pre_trav_Binary_Tree(); //前序遍历 void in_trav_Binary_Tree(); //中序遍历 void pos_trav_Binary_Tree(); //后序遍历 private: struct BTnode *head; //头指针 };template void Binary_Tree ::create_Binary_Tree(T end){ T x; cin >> x; //输入第一个结点值 if(x == end) return; //第一个结点值为结束符号 p = new struct BTnode ; //申请空间存储二叉树结点 p->d = x;p->left = NULL; p->right = NULL; head = p; //二叉树根结点 create(p,1,end); //输入左结点值 create(p,2,end); //输入右结点值 }template static create(struct BTnode *p,int k,T end){ BTnode *p; //二叉数结点 T x; if(x != end) { q = new BTnode ; //申请新结点 q->d = x; q->right = NULL; q->left = NULL; if(k == 1) p->left = q; //连接到左子树 if(k == 2) p->right = q;//连接到右子树 create(q,1,end); //输入左子树结点值 create(q,2,end); //输入右子树结点值 } return 0; }//前序遍历 template void Binary_Tree ::pre_trav_Binary_Tree(){ BTnode *p; p = head; pre_trav(p); cout << endl; return;}template static pre_trav(BTnode *p){ if(p != NULL) { cout << p->d << endl; //输出根结点值 pre_trav(p->left); //遍历左子树 pre_trav(p->right); //遍历右子树 } return 0; }//中序遍历 template void Binary_Tree ::in_trav_Binary_Tree(){ BTnode *p; p = head; in_trav(p); cout << endl; return;}template static in_trav(BTnode *p){ if(p != NULL) { in_trav(p->left); cout << p->d << endl; in_trav(p->right); } return 0; }//后序遍历 template void Binary_Tree ::pos_trav_Binary_Tree(){ BTnode *p; p = head; pos_trav(p); cout << endl; return;}template static pos_trav(BTnode *p){ if(p != NULL) { pos_trav(p->left); cout << p->d << endl; pos_trav(p->right); } return 0; }没有写主函数.
矩阵相乘的规则 如题,比如一个2*3的矩阵 2 3 51 1 7和一个3*2的矩阵1 26 63 0 相乘,怎么个计算法,只要帮我把乘式写出来就可以了像这样c[0] = 2*1 + 3*6 +...,不需要写程序谢谢
矩阵鞍点 #include "stdlib.h"#include "stdio.h"void saddle(int b[5][6]);void saddle(int b[5][6]){ int i,j,m,n,ii,temp; int minr; //每行最小值 int count = 0; for(i = 0;i < 5;i++) { minr = b[i][0]; // for(j = 0;j < 6;j++) { if(minr > b[i][j]) { minr = b[i][j]; m = i; n = j; //记录每排最小值的行列 } } temp = minr; printf("%d ",temp); printf("\n"); //printf("%d", n);//这里错了错怎么会是地址呢? /*for(ii = 0;ii < 5;ii++) { if(temp <= b[ii][n]) count++; } if(count == 5) printf("%d",temp); */ } }int main(){ int a[5][6] = { 1 , 2 , 30, 14, 5 ,12, 0 , 4 , 21, 7 , 46,9 , 0 , -1, 21, 16, 3 ,21, 0 , 33, 17, 4 , 9 ,-4, 0 , 0 , 0 , 44, 36,6 }; saddle(a); system("pause"); }注释的地方出了错,麻烦帮忙看一下,
最后这个人被录用了 面试官:熟悉哪种语言应聘者:Java。面试官:知道什么叫类么应聘者:我这人实在,工作努力,不知道什么叫累面试官:知道什么是包?应聘者:我这人实在 平常不带包 也不用公司准备了面试官:知道什么是接口吗?应聘者:我这个人工作认真。从来不找借口偷懒M:知道什么是继承么Y:我是孤儿没什么可以继承的M:知道什么叫对象么?M:知道,不过我工作努力,上进心强,暂时还没有打算找对象。M:知道多态么?Y:知道,我很保守的。我认为让心爱的女人为了自已一时的快乐去堕胎是不道德的行为!请问这和Java有什么关系?
稀疏矩阵相乘有什么实际意义吗 为什么乘法的运算不是直接的 每行对应的元素相乘,要用行元素乘以对应的列元素呢.
循环删除链表中最小的结点 struct node *fun(node *head){ struct node *p,*q,*s; while(p != NULL) { p = head; while(p->next != NULL) //查找链表中的包含最小元素的结点 { if(p->d >= (p->next)->d) s = p->next; p = p->next; } //cout << "最小元素" << endl; //cout << s->d << endl; if(s->d == head->d) //如果包含最小元素的结点为头结点 { cout << head->d << endl; p = head->next; delete head; head = p; } else //一般情况 { p = s; //p指向包含最小的元素的结点 cout << p->d << endl; //输出最小元素 p = q->next; //找到p结点的前一个结点 q->next = p->next; //q结点的下一结点指向p的下一结点 delete p; //删除该结点 } } return 0; }书上的练习,又出错啊,头疼.指针的分配老搞不好
公司发给我的笔试题目,需要大家帮忙 大家帮顶一下,不要让这个帖子沉了,先发第一题.1写出尽可能多的包含1-9 这9个数的魔方阵的 算法我写的全排列,可是有问题,帮忙改一下.其他算法等下在写main(){int a[3][3] = {0};int b[9] = {0};int m,n;int i,j;int Count = 0;int k;for(b[0] = 1;b[0] < 9; b[0]++) for(b[1] = 1;b[1] < 9; b[1]++) for(b[2] = 1;b[2] < 9; b[2]++) for(b[3] = 1;b[3] < 9; b[3]++) for(b[4] = 1;b[4] < 9; b[4]++) for(b[5] = 1;b[5] < 9; b[5]++) for(b[6] = 1;b[6] < 9; b[6]++) for(b[7] = 1;b[7] < 9; b[7]++) for(b[8] = 1;b[8] < 9; b[8]++){ for(m = 0;m < 9;m++) for(n = m + 1;n < 9;n++) { if(b[m] != b[n]) Count++; } if(Count == 36) { for(i = 0;i < 3;i++) for(j = 0;j < 3;j++) for(k = 0;k < 9;k++) a[i][j] = b[k];if(a[0][0] + a[0][1] + a[0][2] == 15) if(a[1][0] + a[1][1] + a[1][2] == 15) if(a[2][0] + a[2][1] + a[2][2] == 15) if(a[0][0] + a[1][0] + a[2][0] == 15) if(a[0][1] + a[1][1] + a[2][1] == 15) if(a[0][2] + a[1][2] + a[2][2] == 15) if(a[0][0] + a[1][1] + a[2][2] == 15) if(a[2][0] + a[1][1] + a[0][2] == 15) { for(i = 0;i < 3;i++) { for(j = 0;j < 3;j++) { printf("%d ",a[i][j]); } printf("\n"); } } }}getch();}
smilewindy2004 我恨你
单链表的逆转,不会做啊 void reverse_LList(node *head){ node *p,*q,*temp; if(head == NULL){ cout << "空表" << endl; return ; } p = head; while(p->next != NULL) { q = p; //保存p结点 p = p->next; //进位 temp = p->next;//保存当前结点指针域 q = temp; //指向当前结点的前一个结点 q = q->next;//新结点进位 }head = q;return q }这个应该有错误,怎么做啊,
2007年百度之星程序大赛 鼓励c吧的朋友报名,为c吧争光
明天要去驾校考理论了 心情很复杂....后果很严重....
学习方法和学习效率 老是看到吧里有些朋友发帖子:感觉对于学习c语言无从下手,特别是刚入门的朋友.看到那些奇怪的,不合常理的符号,感觉完全是摸不着路一样.然后写这篇帖子,谈一下个人的学习方法和学习效率,希望对大家有帮助,特别是新手,书的选择首先选择一本或者两本,开始学习的时候,书不要过多,多了自己看不完,而且每一本书,作者都有自己的思路和写法习惯,然后现在市面上的书很多编写都不是很好,纰漏百出.看的多了反而感觉思维太混.一些印刷的错误或者其作者本来就写的不正确的程序,对于初学者或者是不懂的朋友,要花许多的时间把错误找出来.很是麻烦.我以前发的教材是北邮出版的,c语言程序设计.基本上教材上面的例子,就算照抄的话,3个就有2个要出现错误.上机课的时候,大家都不怎么会,就把例子抄下来.出了错,不能够通过编译,就不停的问老师.白白浪费了许多时间.我感觉现在编写书的许多作者,在编写的时候,遇到些简单的程序,随手一写,然后就印刷上了书,也没经过调试得到正确的结果.最后出现了些许错误.也不管三七二十一,只要书能卖的好,就行了.这是相当不负责任的.误导读者.开始学习,可以看看潭浩强的c程序设计,老潭的书卖得好,还是有他的理由的,错误比较少,然后讲的也比较通俗易懂,清华出的书我感觉都还可以.习惯和方法贵在坚持,每天看.一天不要搞懂很多的问题,但求把看过的一部分的每一个环节搞清楚,实在搞不清楚的,先跳过去,学习逐渐深入,看了后面在看前面,前后的知识是相通相连的.我一般都会把书上的例子一个一个的敲到计算机上面,然后调试,运行.不要看过了就以为自己懂了,那是不好的,就算让你看100编,你输入到机器里面,还是可能会出错,一个简单的main(){ printf("hello world.") }你就算这样背了下来,还是出错,因为你没有注意到语句少了分号,为什么这里有一个分号.只有自己把代码输入,机器编译通顺了,你才明白自己错在那里.当敲的代码越来越多,熟练度越高,编译再次出现错误,就知道错在那里.如何更正.还有一个好处就是可以发现一些错误,这些错误涉及到当前没有学习过的知识.然后通过逐渐深入的学习,在回想以前出错的,就知道当时为什么会出错.把这里改成main(){ print("hello world");}编译系统会报出不同的错误结果比如这个函数没有写头文件,在某写c++的编译器中也不能通过,当你学习过c++的一些相关知识以后,你就会逐渐明白其中的道理.为什么要使用头文件等等.错误是相当重要的,书上只会告诉你怎么写一个对的程序,程序的格式,程序怎么写.不会告诉你出了错误怎么修正,如何处理,靠自己不断的摸索,才会有新的心得和体会.把课后的习题做完,做好,基本上都弄懂,习题是检验你这一章学习怎么样的一个标准.自己想,自己做,写出简单的算法,不懂的,上论坛,上c吧,发帖子,会有人告诉你的,不要拿着书上的练习跑到论坛来求代码,这是不好的,也没有人愿意告诉你.谁都愿意帮助那些自己思考的朋友,不愿意帮助像乞丐一样不劳动就指望人家给你代码写好了把作业交差了事或者是只为了应付考试蒙混过关的人.那样的人不是真正的喜欢编程,不指望提高自己的水平,也不需要我们帮助.学习后面的知识的时候,如果遇到以前的问题,再把掌握的代码敲一遍,敲两遍,敲n遍提高熟练度,更加可以发现新的问题.mian(){int a = 5;printf("%d",a);}谁都知道输出5,把程序改从一小处mian(){int a = 5;printf("%d");}程序是通不过编译呢,还是输出奇怪的字符或者地址.相信有部分朋友不知道.(我也不知道)3不断深入有如许多朋友发帖子说的,经常把一些时髦的语言挂到嘴边,比如说我要学c#好,还是,java好,不如把基础的东西弄懂弄通.在我看来,在没有学习好c 之前最好不要学习其他任何的语言,不要想到c#,java里面没有指针,没有复杂的东西,可以避难就易,基础的东西不学好,就像做的很华丽的豆腐渣工程,再漂亮,也是会倒的.学完了c ,学习数据结构,学完了,学习计算机编译原理,当你把这三门课都掌握的时候,再开始学习c++,c#,或者是java就很容易,也快得多,把平时用的多的算法写下来,记住,把基础的学好以后,不断往后的学习,你会发现,知道的东西越多,不知道的东西越多,软件行业的博大精深,任何一个小的领域,比如c ,也许穷尽我门毕生的精力才发现自己错学只不过是边陲一角.因为我自己的学习也在初学阶段徘徊,所以也不知道应该更加深入的学习的方法,但是相信知识积累到一定的程度.你自然就知道自己往哪方面发展.写了好多也累了,总之希望对大家有所帮助.如果有讲的不好的也请大家不要骂.还有祝c吧万年红火
链表的建立有点问题 #include "cstdlib"#include "cstdio"#include "iostream"using namespace std;struct node{ int x; node *next; };int main(){ struct node *head,*p,*rear; int flag = 5; head = NULL; head = rear; while(flag) { p = new struct node; if(head == NULL) { head = p; cin >> p->x; } else { cin >> p->x; rear->next = p; rear = p; } flag--; } rear->next = NULL; p = head; while(p != NULL) { cout << p->x << endl; rear = p,p = p->next; delete rear; } system("pause"); return 0; }为什么会多输出一个0呢,那里有问题?
单链表 List *Create(){ List *h,*s,*r;int x,tag;cout<<"请输入结束标志:";cin>>tag; h=new List;h->data=NULL;r=h;cout<<"请输入数据:";cin>>x;while(x!=tag){ s=new List; s->data=x; r->next=s; r=s; cout<<"请输入数据:"; cin>>x;}r->next=NULL;return h;}每次都分配了新的存储空间 s=new List; 原来的存储空间是如何记录的呢,为什么不会覆盖原来的空间呢,比如int a = 3;a = 4;输入a = 4;有什么不同呢
kmp算法中不明白的地方 关于模式串有几个地方不明白的,假如主串和模式串分别是.....A B C D E F G K...... A B C D E F H H前面的五个字符匹配,到第六个不匹配,如何进行第二次匹配呢,
简单的队列题目 设循环队列的容量是70(序号1-70),现经过一系列的入队和出队运算后,有:(1)front = 14,rear = 21;(2)front = 23,rear = 12;问在这两种情况下,循环队列中各有多少个元素.我计算的是(1) 队列头指针在前,尾指针在后,那么元素个数就是 21-14 = 7,(2) 队列尾指针在前,头指针在后,那么元素个数是70-23+12 = 59 不知道计算有没有错误呢,
线性表的建立,插入和删除 #include "stdlib.h"#include "stdio.h"#include "string"#include "iostream"using namespace std;template class sq_List{ public: sq_List(int c,int l){cap = c;len = l;} //构造函数,初始化表长度和空间容量 void creat_List(); //创建空的顺序表 T check_List(); //检测顺序表的状态 void input_List(); //输入顺序表的元素 T *insert_List(int pos,int num); //插入元素 T *delete_List(int pos);//删除元素 void show_List(); //输出新表 void free_List(); //释放空间 private: int cap; //存储空间容量 int len; //顺序表的长度 T *p; //模板类型指针 };//建立空的顺序表 template void sq_List ::creat_List(){ p = new T[cap]; //指向动态开辟的一维数组空间的首地址 }//检测顺序表 template T sq_List ::check_List(){ if(cap == len) return -1; else if(len == 0) return 0; else return 1; }//输入顺序表的元素,输出 template void sq_List ::input_List(){ int i; for(i = 0;i > *(p+i); for(i = 0;i T *sq_List ::insert_List(int pos_in,int num){ int i; if(cap == len) cout << "上溢错误" << endl;//顺序表已满的情况 if(pos_in>len) pos_in = len+1; //插入位置在表的最后一个元素之后,表中元素不需要移动 if(pos_in<1) pos_in = 1; //插入元素在表的第一个元素之前,需要移动 表的所有元素 for(i = len;i>=pos_in;i--) p[i] = p[i-1]; p[pos_in-1] = num; //插入新元素 len++; //表长度加一 return p; //返回首地址 }//删除元素 template T *sq_List ::delete_List(int pos_de){ int i; if(len == 0) cout << "下溢错误" << endl; //顺序表为空表,表中没有元素 if(pos_de<1||pos_de>=len) cout << "没有这个元素" << endl;//表中没有待删除的元素 for(i = pos_de;i void sq_List ::show_List(){ int i; for(i = 0;i void sq_List ::free_List(){ delete []p; }int main(){ sq_List list(10,7); list.creat_List(); list.input_List(); list.check_List(); list.insert_List(5,26); list.delete_List(8); list.show_List(); list.free_List(); system("pause"); return 0; }
如何截取图形函数产生的图 如题,比如我用图形函数画个圆或者画个方什么的,怎么把图截取出来
初始话问题 #include "cstdlib"#include "cstdio"#include "iostream"using namespace std;class Matrix{ public: Matrix(){matr[2][3] = {0};}// friend Matrix operator+(Matrix m1,Matrix m2);// friend ostream&operator<<(ostream &,Matrix &);// friend istream&operator>>(istream &,Matrix &); private: int matr[2][3]; };/*Matrix operator+(Matrix m1,Matrix m2){ Matrix m; int i,j; for(i = 0;i<2;i++) for(j = 0;j<3;j++) m.matr[i][j] = m1.matr[i][j]+m2.matr[i][j]; return m; }*/istream&operator>>(istream &input,Matrix &m){ int i,j; for(i = 0;i<2;i++) for(j = 0;j<3;j++) input >> m.matr[i][j]; return input; }/*ostream&operator<<(ostream &output,Matrix &m){ int i,j; for(i = 0;i<2;i++) { for(j = 0;j<3;j++) { output << m.matr[i][j] << " "; } output << endl; } return output; }*/int main(){ Matrix a,b; Matrix c; cin >> a >> b;// cout << c; system("pause"); return 0; }如果类中成员是数组,那么如何初始话呢,就是全部赋初值为0用for语句写两个循环好象不是很简洁,我上面的写法有什么问题呢
转换构造函数出现问题 #include "stdlib.h"#include "stdio.h"#include "iostream"using namespace std;class Complex{ public: Complex(){real = 0;imag = 0;} Complex(double r){real = r;imag = 0;} Complex(double r,double i){real = r;imag = i;} friend Complex operator+(Complex &,Complex &);// friend ostream & operator<<(ostream &,Complex &); private: double real; double imag; };Complex operator+(Complex &c1,Complex &c2){ return(Complex(c1.real+c2.real,c1.imag+c2.imag)); }/*ostream & operator<<(ostream &output,Complex c){ output << "(" << c.real << "," << c.imag << "i)" << endl; return output; }*/int main(){ Complex c1(3.0,4.0),c2(5,-10),c3; c3 = c1+2.5; //此处为什么不能通过编译呢?书上是这么写的// cout << c3}
在线等,帮改错 #include "cstdlib"#include "cstdio"#include "cstring"#include using namespace std;class String{ public: String(){p = NULL;} String(char *); void display(); friend bool operator>(String &,string &); private: char *p; }; String::String(char *str){ p = str; }void String::display(){ cout << p < (String &string1,String &string2){ if(strcmp(string1.p,string2.p)>0) return true; // else return false; }int main(){ String string1("hello"),string2("c++ program"); string1.display(); string2.display(); cout << (string1>string2) << endl;; system("pause"); return 0; }我已经声明了是friend 为什么还不能访问 private成员呢
熊猫烧香 main(){printf("熊猫烧香");getch();}
这个贴吧怎么没有吧主呢 如题
帮改,输入今天计算明天的程序 #include "stdio.h"getday(Date today); /*声明不正确*/int judge_year();struct date{ int year; int month; int day;};main(){ typedef struct date Date; Date today,tomorrow; printf("Please input year:\n"); scanf("%d",&today.year); printf("Please input month:\n"); scanf("%d",&today.month); printf("Please input day:\n"); scanf("%d",&today.day); printf("Today is %d.%d.%d",today.year,today.month,today.day); getday(today); printf("Tomorrow is %d.%d.%d",tomorrow.year,tomorrow.month,tomorrow.day); /*在tomorrow赋值前使用了*/ getch();}judge_year(Date today) /*判断闰年*/{ if(today.year%4 == 0 && today.year%100 != 0) return 1; else if(today.year%100 == 0 && today.year%400 != 0) return 1; else return 0;}getday(Date today) /* 计算明天的日期*/{ switch(today.month) { case 1: case 3: case 5: case 7: case 8: case 10: /*有31天的月份*/ { if(today.day<31 && today.day>0) tomorrow.day = today.day+1; else if(today.day == 31) { tomorrow.month = today.month+1; tomorrow.day = 1; } else printf("Date error!"); }break; case 4: case 6: case 9: case 11: /*有30天的月份*/ { if(today.day<30 && today.day>0) tomorrow.day = today.day+1; else if(today.day == 30) { tomorrow.month = today.month+1; tomorrow.day = 1; } else printf("Date error!"); }break; case 2: /*2月份*/ { if(judge_year(today)) /*当月份为2月时,首先判断是否为闰年*/ { if(today.day<29 && today.day>0) /*闰年情况*/ tomorrow.day = today.day+1; else if(today.day == 29) { tomorrow.month = today.month+1; tomorrow.day = 1; } else printf("Date error!"); } else /*非闰年情况*/ { if(today.day<28 && today.day>0) tomorrow.day = today.day+1; else if(today.day == 28) { tomorrow.month = today.month+1; tomorrow.day = 1; } else printf("Date error!"); } }break; case 12: /*12月*/ { if(today.day<31 && today.day>0) tomorrow.day = today.day+1; else if(today.day == 31) { tomorrow.year = today.year+1; tomorrow.day = 1; } else printf("Date error!"); }break; } default :printf("Date error"); return tomorrow;}
析构函数问题 #include "stdlib.h"#include "stdio.h"#include "math.h"#include using namespace std;class Box{ public: Box(int,int,int); ~Box(); int volume(); int height; int width; int length; };Box::Box(int h,int w,int l):height(h),width(w),length(l){}Box::~Box(){ cout << "clean object" << endl; //析构函数打印的内容为什么没有在屏幕上显示?? } int Box::volume(){ int volume; volume = height*width*length; return volume; } int main(){ Box box(7,7,8); Box *pb; pb =&box; cout << "The volume of the box is :" << pb->volume() << endl; system("pause"); return 0; }
c++里面的参数初始化表对数据成员初始化 #include "stdlib.h"#include "stdio.h"#include "iostream"using namespace std;class Student{ public: Student(int num = 10,double s = 95.5,char n[20] = "guosheng"):number(num),score(s),name[20](n[20]) /*此处不能通过编译,c++语句里面不允许这样出现还是形式不正确呢*/ {} int number; double score; char name[20]; };int main(){ Student stu1; cout << stu1.number << endl; system("pause"); return 0; }
随机数问题 #include #include #include int main(){ int shuzu[54]; int i=0; int h=0,k; for(i=1;i<55;i++) { shuzu[i]=i+1; } srand((unsigned)time(NULL)); for(i=1;i<55;i++) { i=rand()%55; k=shuzu[i]; /*这里写置换的原理是什么呢看不懂*/ shuzu[i]=shuzu[h]; shuzu[h]=k; } for(i=1;i<55;i++) { if(i%10==0) { putchar('\n'); } printf("%3d",shuzu[i]); } putchar('\n'); getch(); return 0;}
那里错了 #include "stdlib.h"#include "stdio.h"#include "math.h"#include using namespace std;class Time{ public: Time(int, int, int); private: //此处声明的变量为private int hour; int minute; int sec; };Time::Time(int h,int m,int s) /* private 成员不能够被本身的构造函数调用吗? */{ hour = h; minute = m; sec = s; }int main(){ Time time(20,17,32); cout << "time is :" << time.hour << ":" << time.minute << ":"<< time.sec << endl; system("pause"); return 0; }编译不能通过,改为public就可以,但是老潭的书上是这么写的,是不是我那里写错了呢
有人考过初级程序员吗, 难不难,听说只要考45分就可以了.
今天20周岁生日,希望大家给我一声祝福 如题,帖子发的有点不恰当,还是希望吧主不要删
帮忙 求出现1到54 之间互不相同的数的简易算法
求助 明天去武汉想买两本书,一本数据结构,一本简单项目制作,希望大家帮我推荐一下
我编程时出现过的错误 #include "stdio.h"main(){ printf("hello world!\n"); getch();}不上机的话,有谁知道这个程序那里错了呢?但是它确实是错的
疑问,刚才那个帖子怎么给吧主删了, 那个做出来送qq号的,估计是哪个公司的应聘题目,发出来让大家思考一下也好,吧主删了干什么呢
9急啊 #include #include void print_point();void point_move(int [],int []);main(){ int gdriver, gmode; detectgraph(&gdriver, &gmode); /*自动测试硬件*/ getch(); initgraph(&gdriver, &gmode, "c:\\caic\\bgi"); /* 根据测试结果初始化图形*/ srand(time(NULL)); print_point(); getch(); closegraph();}void print_point() /* 函数打印屏幕上100个随机的点 */{ int x,y,i; int X[100],Y[100]; for(i = 0;i<100;i++) { x = rand()%1024; y = rand()%768; X[i] = x; Y[i] = y; putpixel(X[i],Y[i],15); /* 数组存放100个点的位置*/ } point_move(X,Y);}void point_move(int X[100],int Y[100]) /* 100个点出现随机情况的运动 */{ int m,n; int i,t = 0; while(t<10) { for(i = 0;i<100;i++) /*让100个点完成新的位置*/ { switch(rand()%1) /*如过是横向移动的点,纵向不移动,反之一样方向随机*/ { case 0: { m = rand()%1; /*0表示横向移动*/ if(!m) m = -1; X[i] = X[i]+m; }break; case 1: { n = rand()%1; /*1表示纵向移动*/ if(n == 0) n = -1; Y[i] = Y[i]+n; }break; } } sleep(1); cleardevice(); /*清理屏幕*/ for(i = 0;i<100;i++) putpixel(X[i],Y[i],15); /*打印新的位置的点 */ t++; }}我想让所有点都向不同的方向运动,而且每一秒都会改变方向,那里写错了
声明 换马甲了 ,枪杆子里面出政策
1
下一页