十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
嗯,很佩服lz的自学能力。
创新互联公司自2013年起,是专业互联网技术服务公司,拥有项目网站设计、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元抚远做网站,已为上家服务,为抚远各地企业和个人服务,联系电话:18980820575
谭浩强的c语言的书,很权威,很详细,很适合自学的。
学习c语言很重要的一点就是学习理论知识与上机训练结合起来。学完一章后就按课本后面的习题上机练练。这样稳扎稳打的学起来很好了。又win—tc软件配合上机训练不错。
指针是学习者公认的最难学的。还有指向指针的指针。后面还有结构体和链表,里面都有用到指针的知识。如果指针学得后,那在以后的设计里会相当实用方便。
c学起来也不是很难,主要是指针和其他的知识点入数组、函数等组合起来难理解一些
要想学习,主要有几点需要注意
一、记忆部分
1、保留字,如if,int,for等
2、常规的结构,如条件,循环,switch、数组的结构,指针定义,结构体的定义等
3、语法的构成,如printf,scanf等一些语句的构成
4、一些系统带的函数,常用的要记住,如strlen,printf等
5、一些经典的算法,如素数的计算,排序的写法等
二、算法,语法等
这个就是解决问题的方法,没有好的捷径,只要慢慢的积累,数学方面的算法要加深
其实,c基础也就是那么一些基础点
1、保留字
2、定义变量等,int,float等
3、条件语句if,选择语句switch,循环,do--while、for、while、goto
4、注意逗号语句,scanf和printf要熟练,知道格式(这个很基础,用错了很麻烦)
5、数组,这里注意二维数组和字符串的一些函数
6、指针,这个是难点,也就是说很难理解,特别是和数组函数结构体等结合使用的时候
7、结构体共用体,这个不难,就是繁琐而已。这里涉及到链表,其实不难理解,可以想象成一串珠子,next指针就是串珠子的线,结构体就是珠子
8、文件操作,这个就是套用格式,没难度
9、宏定义,这个没难度,就是最简单的直接替换。注意一点就是在定义宏的时候多用几个括号增加优先级没坏处
10、函数。这个难度不大,主要是要理解,参数是在调用的时候另外开辟内存空间。除了数组和用定义的参数。要不然子函数改变了参数变量,调用它的地方的变量时不会改变的
其实就是这些基本的知识点
莫非这点小问题就打击到你了, 你漫漫长征第一步都还没开始, 以后的数据库 数据结构 操作系统 计算机网络 每一门课程都是很难的
C语言的函数其实很简单 你就把他当成一个功能模块就行了, 这个东西理解清楚了其实很简单的, 比如说你想请客吃饭, 这是你的最后功能,中间你可能叫别人通知另外的人, 那么你叫别人通知的这个过程就可以当成一个函数了, 因为你叫他帮你做一件事, 但可能不知道他是怎么做的, 你只关注入口和出口, 即你叫他通知和他是否通知到.
既然是叫别人帮忙做事的话, 你可能需要传一些东西给别人这就是参数, 别人做完后, 可能要返回给你一个东西, 这就是返回值, 但这不是必须的.
C语言程序全都是函数, 他就是一个函数的集合, 在main函数中调用其他的函数, 所以说C语言里全是函数, 锄此之外再没别的东西了
先看下我的运行结果吧,会自动判断输入的m、n是否合法哦!
上代码,注释只写了部分有助理解的。
#include stdio.h
int Found(int m, int n, int a[])
{
int i = 0;
int Count = 0;
int offset = 0; //数组a的下标
int qian, bai, shi, ge; //千位、百位、十位、个位的值
for(i=m; i=n; i++)
{
//取出千位、百位、十位、个位的值
qian = i/1000;
bai = (i%1000)/100;
shi = (i%100)/10;
ge = i%10;
if((qian= bai bai=shi shi=ge) (qian+ge == bai+shi)) //找到一个符合条件的数
{
Count++;
a[offset++] = i;
}
}
return Count;
}
int main()
{
int m = 0;
int n = 0;
int nResult[100] = {0};
int Count = 0;
int i = 0;
FILE* pFile = NULL;
char szInfo[100] = {0};
while(1)
{
printf("Please enter m and n:");
scanf("%d %d", m, n);
printf("\n");
if(m=1000 n=1200 mn)
break;
else
printf("输入数据不合法,请重新输入\n");
}
Count = Found(m, n, nResult);
pFile = fopen("104.out", "w");
if(NULL == pFile)
printf("打开文件失败\n");
sprintf(szInfo, "found %d numbers in %d ~ %d:\n", Count, m, n);
printf("%s", szInfo);
if(NULL != pFile)
{
fwrite("No. 104\n", 1, strlen("No. 104\n"), pFile); // 写入学号
fwrite(szInfo, 1, strlen(szInfo), pFile); //写入部分信息
}
for(i=0; iCount; i++)
{
printf("%d ", nResult[i]);
sprintf(szInfo, "%d ", nResult[i]);
if(NULL != pFile) //输出到屏幕的同时,顺便把该值写进文件
fwrite(szInfo, 1, strlen(szInfo), pFile);
}
printf("\n");
if(NULL != pFile)
fclose(pFile);
return 0;
}
自从工作以来,两年没上过百度知道了,当初上大学的时候天天在百度知道问问题,今偶尔闲娱,帮忙解答,想不到这里还是这么热闹,不禁想起了当年为一个链表、一个函数挑灯夜战的场景。只能叹时间太快,想不到都过去好几年了。做程序最需要毅力,小师弟,好好努力吧,嘿嘿,下班回家咯!