一、c语言怎么开始编程?
c语言需要下载编译的环境,再通过不断的训练获得对功能实现的能力,最终完整地完成一个任务。
二、c语言怎么编写?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char fun(char *a,char *b)
{
char *t;
strcpy(t,a);
strcpy(a,b);
strcpy(b,t);
}
struct st{
char a[6][20];
};
int main()
{
struct st s[111];
int n,x[111],k=0,ts,sum=0;
scanf(%d,&n);
printf(学号 姓名 数学 物理 英语 计算机\n);
for(int i=0;i<n;i++)
{
sum=0;
for(int j=0;j<6;j++)
{
scanf(%s,s[i].a[j]);
if(j!=0&&j!=1)
{
sum+=atoi(s[i].a[j]);
}
}
x[k++]=sum/3;
}
for(int i=0;i<k;i++)
{
for(int j=0;j<k-i-1;j++)
{
if(x[j]>x[j+1])
{
ts=x[j];
x[j]=x[j+1];
x[j+1]=ts;
for(int l=0;l<6;l++)
fun(s[j].a[l],s[j+1].a[l]);
}
}
}
printf(学号 姓名 数学 物理 英语 计算机 平均成绩\n);
for(int i=0;i<n;i++)
{
for(int j=0;j<6;j++)
{
printf(%s,s[i].a[j]);
for(int k=0;k<8-strlen(s[i].a[j]);k++)
printf( );
}
printf(%8d\n,x[i]);
}
return 0;
}
1、编辑,把程序代码输入,交给计算机。
2、编译。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段,词法分析、语法分析、语义检查、中间代码生成、代码优化、目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
3、链接。链接是将编译产生的文件和系统库连接装配成一个可以执行的程序。各类源程序都需要先各自编译成目标程序文件,再通过链接程序将这些目标程序文件连接装配成可执行文件。
4、运行,可执行程序文件。
1.打开Dev软件,点击“文件”,选择新建源程序。
2.这是每个C语言程序都要编写的框架。
3.printf(Hello World!);输入Hello World!
4.点击“编译运行”。
5.选择保存程序的位置,不保存无法运行。
您好。您可以下载VC++2010,学习版,或者是DW有的版本也支持编写C语言程序和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);i<maxLen;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;i<maxLen-1;i++)
{
n=i;
for(j=i+1;j<maxLen;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;i<maxLen;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(--cnt<maxLen)//函数结束前,删除多余地址,减少内存占用
{
maxLen=cnt;
temp=(int *)realloc(nums,sizeof(int)*maxLen);
if(!temp) return NULL;
nums=temp;
}
fclose(fp);
return nums;
}
指定完成完成排序完成以件当中有记得关闭要求写要,按照他题目的要求打开指定的文件,然后把数据读入到一个一为数组中,然后对这个一为输出进行排序排序完成,以后再按照要求写入指定的文件当中,要记得关闭文件