用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;
}