⑴ 求用c語言編寫程序
vc裡面建立一個控制台程序,代碼如下:
#include<stdio.h>
#include<string.h>
int
main()
{
int
len;
printf("請輸入正方形的邊長:");
while(scanf("%n",&len)){
printf("正方形的邊長為:%d\n",len);
printf("正方形的表面積為:%d\n",len*len);
printf("正方形的體積為:%d\n",len*len*len);
printf("\n請輸入正方形的邊長:");
}
}
這段代碼是計算正方形表面積和體積的,直接用記事本編寫的,沒有編譯過,不知道有沒錯誤,有錯誤你自己稍微修改下,大致是這樣,我手頭上沒有vc,就不編譯了
⑵ 用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語言的源程序語法結構如下:
#include<stdio.h>//預處理語句
/* 自定義函數1*/
/* 自定義函數2*/
int main()
{
//main()主函數執行調用以上定義的函數的順序
return 0;//執行完畢 退出
}
示例如下:
#include <stdio.h>
int main()
{
printf("welcome to c language!!!\n");
return 0;
}
⑷ 用C語言編寫一個程序
#include<stdio.h>
intmain()
{doubles,y=0;
scanf("%lf",&s);
if(s>=5000)
{y=0.13*(s-5000);
s=5000;
}
if(s>=3000)
{y+=0.1*(s-3000);
s=3000;
}
if(s>=2000)
{y+=0.08*(s-2000);
s=2000;
}
if(s>=1600)
{y=0.05*(s-1600);
s=1600;
}
printf("%.2f ",y);
return0;
}
⑸ 怎麼樣來讀取G代碼 就是用什麼編程軟體能讀取數控代碼,能進行數控代碼的計算機識別
EdiTasc比較好!
⑹ 用C語言編寫程序
#include <stdio.h>
#include <string.h> //strlen 對應頭文件
int main (void)
{
char a[] = "C Programing Design";
char b[80];
int res;
res = cpystr(b, a, 3, 17);
if (res > 0 )
printf ("the result is:%s\n", b);
else
printf ("Error.\n");
return 0;
}
/*int cpystr (char dest[],char src[],int s,int n),實現將*/
/*字元串src中從第s個字元開始的n個字元復制到dest中,考慮s大於src中字 */
/*符的個數、s>1或n≤0等情況 */
int cpystr(char dest[],char src[],int s, int n)
{
char *start = dest; //記錄起始位置
char *p = src; //純粹為了安全,防野指針
if(n < 0 || n > strlen(src) - s + 1) //如果n非法,返回-1,strlen為標准庫函數(取字串長度)
return -1;
if(s > strlen(src) || s < 0) //如果s非法,返回
return -1;
else
{
for(p += (s - 1); (n-- > 0) && *p; p++,dest++)
*dest = *p;
}
*dest++ = '\0';
return dest - start; //返回已復制字串長度
}
⑺ 誰有用C語言編寫的直線,圓弧插補程序
給你推薦一本書,<計算機圖形學基礎>唐澤聖,周嘉玉,李新友寫的,我們以前上課用的,上面有常用的直線和圓弧演算法,比如數值微分法生成直線,逐點比較法插補圓弧,角度DDA法產生圓弧,基本都有C語言的源程序.你可以搜搜這本書,本來都有源程序的,後來給刪掉了~~
貼一個別人的
/*************************************************************************
Function: int ArcXY(double dfx0,double dfy0,double dfrx,
double dfry,int angle);
Description: 在X-Y軸所構成的平面上,以圓弧運動的方式從目前位置經過指
定的參考點到目的點。調用此函數成功將增加運動命令的庫存數目。
Parameters: dfx0, dfy0 參考點的X-Y軸座標值
dfrx, dfry 圓心的X-Y軸座標值
angle 插補角度
Calls: 無
Return Value: 大於或等於0 給予此運動命令的編碼
小於0 失敗,傳回值的意義可參考錯誤信息代碼
**************************************************************************/
#include <stdio.h>
#include <math.h>
int ArcXY(double dfx0,double dfy0,double dfrx, double dfry,int angle);
int symbol(double number);
main()
{
ArcXY(0,0,-3,5,360);
getch();
}
int ArcXY(double dfx0,double dfy0,double dfrx, double dfry,int angle)
{
FILE *f1;
double i,j,dx,dy,dfr,x,y,ang,step,f = 0.01;
int flag,tempx,tempy,statex,statey,direction = 1;
dfr = sqrt((dfrx - dfx0) * (dfrx - dfx0) + (dfry - dfy0) * (dfry - dfy0));
if(dfx0 == 0)
{
dfx0 = 1;
dfrx = dfrx + 1;
statex =1;
}
if(dfy0 == 0)
{
dfy0 = 1;
dfry = dfry + 1;
statey =1;
}
dfrx = 2 * dfx0 - dfrx;
i = dfx0 - dfrx;
j = dfy0 - dfry;
x = dfx0 ;
y = dfy0 ;
step = ang = 180 * 2 * asin(f/(2*dfr))/3.1415926;
if(((dfx0 > 0) && (dfy0 > 0)) || ((dfx0 < 0) && (dfy0 < 0)))
{
flag = direction;
}
if(((dfx0 < 0) && (dfy0 > 0)) || ((dfx0 > 0) && (dfy0 < 0)))
{
flag = -direction;
}
f1=fopen("c:\\c.txt","w+");
if(statex ==1)
{
x = x - 1;
}
if(statey ==1)
{
y = y - 1;
}
fprintf(f1,"%f,",x);
fprintf(f1,"%f\n",y);
while(ang < angle)
{
dx = f * (j + flag*(f * i)/(2 * dfr))/dfr;
dy = f * (i - flag*(f * j)/(2 * dfr))/dfr;
tempx = symbol(x);
tempy = symbol(y);
x = x + dx;
y = y + dy;
fprintf(f1,"%f,",x);
fprintf(f1,"%f\n",y);
if( (tempx !=symbol(x)) || (tempy != symbol(y)) )
{
flag = -flag;
}
i = i - dx;
j = j + dy;
ang = ang + step;
}
return 0;
}
int symbol(double number)
{
if(number > 0)
{
return 1;
}
else
{
return -1;
}
}
int ArcXY(double dfx0,double dfy0,double dfrx, double dfry,int angle); 這個就是子函數,你放到你需要的地方注意參數,按自己需要修改,要麼添加返回值返回感興趣的部分,要麼添加參數按照傳引用的方法取得,直線的有簡單DDA演算法的,需要的話明天打上,今天有點晚了.
⑻ 數控代碼用c語言解釋是什麼意思
G00 定位 (快速移動)
G01 直線切削
G02 順時針切圓弧 (CW,順時鍾)
G03 逆時針切圓弧 (CCW,逆時鍾)
G04 暫停 (Dwell)
G09 停於精確的位置
G20 英制輸入
G21 公制輸入
G22 內部行程限位 有效
G23 內部行程限位 無效
G27 檢查參考點返回
G28 參考點返回
G29 從參考點返回
G30 回到第二參考點
G32 切螺紋
G40 取消刀尖半徑偏置
G41 刀尖半徑偏置 (左側)
G42 刀尖半徑偏置 (右側)
G50 修改工件坐標;設置主軸最大的 RPM
G52 設置局部坐標系
G53 選擇機床坐標系
G70 精加工循環
G71 內外徑粗切循環
G72 台階粗切循環
G73 成形重復循環
G74 Z 向步進鑽削
G75 X 向切槽
G76 切螺紋循環
G80 取消固定循環
G83 鑽孔循環
G84 攻絲循環
G85 正面鏜孔循環
G87 側面鑽孔循環
G88 側面攻絲循環
G89 側面鏜孔循環
G90 (內外直徑)切削循環
G92 切螺紋循環
G94 (台階) 切削循環
G96 恆線速度控制
G97 恆線速度控製取消
G98 每分鍾進給率
G99 每轉進給率
⑼ 用C語言編一段程序
像這種C語言的編程的話,建議你找程序員編寫一下,一般也不會太貴的,然後叫他們幫你一個小忙就可以了
⑽ 用C語言編寫一個簡單的程序
畫菱形的代碼:
#include <stdio.h>
void main() {
int i,j,k;
/*i控制要列印的行數,
*j控制要列印的空格數,
控制要列印的星號的個數*/
//先列印上邊的4行
for(i=1;i<=4;i++) //控制要列印的行數
{
for(j=1;j<=4-i;j++) //控制每行要列印的空格數
printf(" ");
for(k=1;k<=2*i-1;k++) //控制列印第一個「*」到第二個「*」
{
if(k==1||k==2*i-1) //只在循環的邊界值列印「*」,否則打空格
printf("*");
else
printf(" ");
}
printf("\n");
}
//然後列印下邊的3行
for(i=1;i<=3;i++) //控制要列印的行數
{
for(j=1;j<=i;j++) //控制每行要列印的空格數
printf(" ");
for(k=1;k<=7-2*i;k++) //控制每行要列印的「*」的個數
{
if(k==1||k==7-2*i) //只在循環的邊界值列印「*」 ,否則列印空格
printf("*");
else
printf(" ");
}
printf("\n");
}
}