本文目录一览:
用c语言怎么编程?
我的算法没有那位用数列的高效,但可以由用户输入n来确定计算前n项的和
#includestdio.h
#includestdlib.h
int fa(int n)
int a;
if(0==n||1==n)
a=1;
else
a=fa(n-1)+fa(n-2);
return a;
int fb(int n)
int b;
if(0==n) b=1;
else if(1==n) b=3;
else b=fa(n)+fb(n-1);
return b;
main()
FILE *fp;
int n,a,b,c,i;
float d,s;
s=0.0;
c=1;
printf("Please enter integer n=");
scanf("%d",n);
if(n0) exit(0);
if((fp=fopen("cac.txt","w"))==NULL)
printf("The result cannot be saved.\n");
else
printf("The result is saved as cac.txt\n");
for(i=0;in;i++)
a=fa(i);
b=fb(i);
fprintf(fp,"%d/%d",a,b);
printf("%d/%d",a,b);
if(in-1)
if(c0)
fputs("-",fp);
printf("-");
else
fputs("+",fp);
printf("+");
else
fputs("=",fp);
printf("=");
d=((float)c)*((float)a)/((float)b);
s=s+d;
c=c*(-1);
fprintf(fp," %f",s);
printf(" %f\n",s);
fclose(fp);
c语言如何编程
C语言编程如何快速实现
在我们初次学习C语言的时候,总想着快速的实现编译过程。那么C语言编程究竟是如何实现的呢,当然是要通过自己喜欢的编译器来编译完成,那么今天就为大家介绍C语言编程是如何快速的实现。
1. 首先我们下载一款适合C语言的编译器,今天为大家讲解的C语言编译器为CodeBlocks,该编译器没有太过复杂,很符合初学者,简单上手快。
2. 首先双击打开编译器,进入登录选择界面,我们选择添加一个新项目。
3. 然后进入选择界面,优先选择“Console application”,然后双击进入下一个界面。
4. 进入之后便是提示界面,我们选择“Next”下一步。然后在选择C++语言,C++语言是C语言的升级版,然后再次点击“Next”,进入下一步。
5. 选择创建的名称,可以创建一个醒目的名称。然后便是文件放置位置,然后点击“Next”。
6. 点击最左侧栏“main.cpp”会出现编程书写界面,然后便可以实现我们的代码编程。
7. 首先要属于有关C语言的头文件#includestdio.h,头文件是为了下面更好的应用,如果编程的代码有遇到其他头文件如数学函数头文件#includemath.h,以及字符串头文件#includestring.h。
8. 对于C语言我们首先要学会的便是输出“Hello world”,那么今天我们就实现Helloworld的输出。在主程序优先写出main函数,然后便是对于我们要用到的内容开始书写。因为我们只需要输出简单的“Helloworld”,所以整条语句便是只有一行printf("");输出的意思,我们只需要将自己想要输出的填写在双引号里面便可以实现。那么我们的代码行便成为了printf("Hello world");
9. 下面便是测试我们的代码是否正确,点击上方的编译,如果成功,便可以运行如下,运行框成功出现我们结果,表明编译成功,便完成了基础的C语言编译。
用c语言编程
程序就是读取文件到数组,再将数组进行排序,最后写入文件。
读写文件流程:fopen获取文件流(根据读写需求,选择参数,使用完必须调用fclose函数关闭),fscanf读取文件内容,fseek控制文件流指针,fprintf写入文件。
选择排序:每个循环周期选出一个最值,交换一次。
下面是代码(数组为动态数组):
#include stdio.h
#include malloc.h
int maxLen;//数组长度
int *read2Nums(char path[]);//读取
int write2File(int *nums,char path[]);//写入
void showNums(int *nums);
int px(int *nums,int flag);//选择排序flag=1升序,flag=0降序
int main()
int *nums=NULL;
char rPath[]="c:\\000.dat",wPath[]="c:\\rank.dat";
if(!(nums=read2Nums(rPath))) return 1;
showNums(nums);
printf("数组升序排列:\n");
if(px(nums,1)==-1) return 1;
showNums(nums);
printf("数组降序排列:\n");
if(px(nums,0)==-1) return 1;
showNums(nums);
printf("写入到文件路径%s下(存在覆盖,不存在新建)\n",wPath);
if(write2File(nums,wPath)==-1) return 1;
printf("写入成功!\n");
return 0;
void showNums(int *nums)
int i;
if(nums) for(i=0,printf("文件内容:\n");imaxLen;printf("%d ",nums[i]),i++);
printf("\n");
int px(int *nums,int flag)
int i,j,n,temp;
if(!nums) return -1;
for(i=0;imaxLen-1;i++)
n=i;
for(j=i+1;jmaxLen;j++)
if(flag nums[n]nums[j]) n=j;
if(!flag nums[n]nums[j]) n=j;
temp=nums[i],nums[i]=nums[n],nums[n]=temp;
return 1;
int write2File(int *nums,char path[])
int i;
FILE *fp=NULL;
if(!nums) return -1;
if(!(fp=fopen(path,"w"))) return -1;
//fseek(fp,SEEK_END);
for(i=0;imaxLen;i++)
fprintf(fp,"%d ",nums[i]);
fclose(fp);
return 1;
int *read2Nums(char path[])
int *nums=NULL,*temp=NULL,cnt=0;
FILE *fp=NULL;
maxLen=10;
if(!(fp=fopen(path,"r"))) return NULL;
nums=(int *)malloc(sizeof(int)*maxLen);
if(!nums) return NULL;
while(fscanf(fp,"%d",nums[cnt++])!=-1)
if(cnt==maxLen)//数组长度不够扩展(每次扩展10长度)
maxLen=maxLen+10;
temp=(int *)realloc(nums,sizeof(int)*maxLen);
if(temp) return NULL;
nums=temp;
if(--cntmaxLen)//函数结束前,删除多余地址,减少内存占用
maxLen=cnt;
temp=(int *)realloc(nums,sizeof(int)*maxLen);
if(!temp) return NULL;
nums=temp;
fclose(fp);
return nums;
C语言编程?
10个C语言新手编程时常犯的错误及解决方式
C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,小编通过对C的学习,积累了一些C编程时常犯的错误,写给各位学员以供参考。
1、将字符常量与字符串常量混淆。
char c;
c="a";
在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\0',而把它赋给一个字符变量是不行的。
2、输入数据时,企图规定精度。
scanf("%7.2f",a);
这样做是不合法的,输入数据时不能规定精度。
3、输入字符的格式与要求不一致。
在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。
scanf("%c%c%c",c1,c2,c3);
如输入a b c
字符“a”送给c1,字符“ ”送给c2,字符“b”送给c3,因为%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。
4、输入输出的数据类型与所用格式说明符不一致。
例如,a已定义为整型,b定义为实型
a=3;b=4.5;
printf("%f%d\n",a,b);
编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。
5.switch语句中漏写break语句。
例如:根据考试成绩的等级打印出百分制数段。
switch(grade)
case 'A':printf("85~100\n");
case 'B':printf("70~84\n");
case 'C':printf("60~69\n");
case 'D':printf("60\n");
default:printf("error\n");
由于漏写了break语句,case只起标号的作用,而不起判断作用。因此,当grade值为A时,printf函数在执行完第一个语句后接着执行第二、三、四、五个printf函数语句。正确写法应在每个分支后再加上“break;”。例如
case 'A':printf("85~100\n");break;
6、定义数组时误用变量。
int n;
scanf("%d",n);
int a[n];
数组名后用方括号括起来的是常量表达式,可以包括常量和符号常量。即C不允许对数组的大小作动态定义。
7、在不应加地址运算符的位置加了地址运算符。
scanf("%s",str);
C语言编译系统对数组名的处理是:数组名代表该数组的起始地址,且scanf函数中的输入项是字符数组名,不必要再加地址符。应改为:
怎么用c语言编程?
以“输入三个数,判断是否构成三角形”为例,
你可以试试
#include stdio.h
#include math.h
void main()
float a,b,c,d,s;
scanf("%f,%f,%f",a,b,c);
if(a+bca+cbb+ca)
if(a==b||b==c||c==a)
{if(a==bb==c) printf("this is a dengbiansanjiaoxing\n");
else printf("this is a dengyao sanjiaoxing\n");
else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
printf("this is zhijiao\n");
else printf("yibansanjiaoxing\n");
d=(a+b+c)/2;
s=sqrt(d*(d-a)*(d-b)*(d-c));
printf("%f\n",s);
else printf("bushi sanjiaoxing ") ;
C语言编程是什么
C语言编程,顾名思义,就是用C语言来进行计算机编程工作。C语言是国际上广泛流行的,很有发展前途的计算机高级语言.它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件.