用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("数组升序排列: ");
if(px(nums,1)==-1) return 1;
showNums(nums);
printf("数组降序排列: ");
if(px(nums,0)==-1) return 1;
showNums(nums);
printf("写入到文件路径%s下(存在覆盖,不存在新建) ",wPath);
if(write2File(nums,wPath)==-1) return 1;
printf("写入成功! ");
return 0;
}
void showNums(int *nums)
{
int i;
if(nums) for(i=0,printf("文件内容: ");i<maxLen;printf("%d ",nums[i]),i++);
printf(" ");
}
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;
}
② 用c语言怎么做
③ 用C语言实现
冒泡排序是最简单的排序,随便一个c语言的书都有,好好学习一下吧。
④ 用C语言怎么做
很多大学生都或多或少的懂一点编辑语言,尤其是计算机系的,众说周知,c++语言是众多语言中比较简单易学的,那么要如何使用它来编写程序呢?下面将告知如何编写一个属于自己的小程序。
工具/原料
more
电脑一台(能联网) Visual C++ 6.0(完整绿色版)软件
方法/步骤
1/6分步阅读
想要编写软件首先得要有编写工具,对于初学者来说,一个好的编写工具会能让我们更快的上手,所以编写软件最好是中文版的,我这里使用的是Visual C++ 6.0(完整绿色版)软件,当然也可以用其他版本,只是内容大同小异。首先要在网上下载软件。
查看剩余1张图
2/6
软件安装后(安装过程就不多加赘述了)运行软件,哪个你知道吗....可以不用管它,点击关闭即可。先点击点击左上角文件,再点击新建。
查看剩余1张图
3/6
点击新建后进入一个界面,在此界面上先选择工作区,然后选择倒数第三个,然后自己建立一个工程名(必须得先选择后建立工程名),然后可以选择工程保存位置,点击确认,之后选择一个空工程,点击完成。
查看剩余1张图
4/6
点击完成后又会回到起初的界面,老规矩点击文件,新建,进入界面后,这一次要选择文件区,然后选择第四个,再建立文件名,设置好了后点击确定。
5/6
点击确定后就进入设计界面了,在此界面上我们可以随心所欲的写自己想写的代码,写完代码后,可以点击上面的那个叹号似的东西,选择运行程序,之后我们写的程序就会运行,你可以看到它们运行后的状态。
查看剩余2张图
6/6
值得一提的是,如果你的代码存在错误时,那么程序会运行不成功,你可以到最下面那个窗口看自己到底错在哪里,然后改正直到运行成功,则程序制作成功了。
注意事项
在建立工程时一定要记得工程的位置,最好是专门建立一个文件夹来存放,否则容易会导致找不到工程的的情况。
⑤ C语言中的%是个什么意思啊 有什么用啊
%是求模的意思,两边必须是整数类型的,求模常用符号为mod,就是我们小学学的求余运算符。
例如50%23=4,因为余数为4,所以在程序中必须保证两边为整数才是这个意思。
(5)用c语言扩展阅读
“模”是“Mod”的音译,模运算多应用于程序编写中。 Mod的含义为求余。模运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。虽然很多数论教材上对模运算都有一定的介绍,但多数都是以纯理论为主,对于模运算在程序设计中的应用涉及不多。
基本性质
(1)若p|(a-b),则a≡b (% p)。例如 11 ≡ 4 (% 7), 18 ≡ 4(% 7)
(2)(a % p)=(b % p)意味a≡b (% p)
(3)对称性:a≡b (% p)等价于b≡a (% p)
(4)传递性:若a≡b (% p)且b≡c (% p) ,则a≡c (% p)
参考资料模运算_网络
⑥ 用c语言怎么写
#include<stdio.h>
struct date
{
int year;
int month;
int day;
};
int days(struct date day)
{
static int day_tab[2][13]=
{{0,31,28,31,30,31,30,31,31,30,31,30,31,}, /*平均每月的天数*/
{0,31,29,31,30,31,30,31,31,30,31,30,31,},
};
int i,lp;
lp=(day.year%4==0&&day.year%100!=0)||day.year%400==0;
/*判定year为闰年还是平年,lp=0为平年,非0为闰年*/
for(i=1;i<day.month;i++) /*计算本年中自1月1日起的天数*/
day.day+=day_tab[lp][i];
return day.day;
}
int main()
{
struct date today,term;
int yearday,year,day;
printf("请输入日期:(年 月 日):");
scanf("%d%d%d",&today.year,&today.month,&today.day); /*输入日期*/
term.month=12; /*设置变量的初始值:月*/
term.day=31; /*设置变量的初始值:日*/
for(yearday=0,year=1990;year<today.year;year++)
{
term.year=year;
yearday+=days(term); /*计算从1990年至指定年的前一年共有多少天*/
}
yearday+=days(today); /*加上指定年中到指定日期的天数*/
day=yearday%5; /*求余数*/
if(day>0&&day<4) printf("打鱼 "); /*打印结果*/
else printf("晒网 ");
}
⑦ “并且”用C语言怎么表示
并且用C语言表示方法如下:按位与 &:
例子:
int a=1,b=0。
a=a&;b。
结果a=0。
=====================================
表达式之间的逻辑与 &;&。
例子:if (a>;b &;&;a>;c);如果a>;b并且a>;c则...
(7)用c语言扩展阅读:
C语言的基本构成:
数据类型:C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
常量与变量:常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
数组:如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。⑧ 用c语言编写
#include<stdio.h>
voidfun(intn){
inti,j;
for(i=1;i<=n;i++){ for(j=1;j<=i;j++){
printf("*");
}
printf(" ");
}
for(i=n;i>=1;i--){
for(j=i;j>=1;j--){
printf("*");
}
printf(" ");
}
}
intmain(){
fun(5);
return0;
}