簡單c語言代碼
Ⅰ 求簡單c語言程序代碼!
輸入2個正整數m和n,求其最大公約數和最小公倍數
#include
#include
int main()
int m,n,p,q,s,r;
printf("請輸入兩個正整數;m,n ");
scanf("%d,%d",&m,&n);
#include<stdio.h>
main()
int a,b,t=0;
scanf("%d %d",&a,&b);
if (a<b)
printf("%d %d %d %d %d",(a+b),(a-b),(a/b),(a*b),(a%b));
}
主要特點
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
以上內容參考:網路-c語言
Ⅱ 幫忙寫一段簡單的c語言代碼
#include <stdio.h>
int main()
{
FILE *fp;
int a[3][9],i,j;
if((fp=fopen("C:\cDemo\data.txt","r"))!=NULL)
{
for(i=0;i<3;++i)
{
for(j=0;j<9;++j)
{
fscanf(fp,"%d",&a[i][j]);
}
}
for(i=0;i<3;++i)
{
for(j=0;j<9;++j)
{
printf("%d ",a[i][j]);
}
printf(" ");
}
}
else
{
puts("Can't open C:\cDemo\data.txt");
}
return 0;
}
Ⅲ c語言必背代碼有哪些
1、/*輸出9*9口訣。共9行9列,i控制行,j控制列。*/
#include "stdio.h"
main()
{int i,j,result;
for (i=1;i<10;i++)
{ for(j=1;j<10;j++)
{
result=i*j;
printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,佔3位*/
}
printf(" ");/*每一行後換行*/
}
}
5、/*下面程序的功能是將一個4×4的數組進行逆時針旋轉90度後輸出,要求原始數組的數據隨機輸入,新數組以4行4列的方式輸出,
請在空白處完善程序。*/
main()
{ int a[4][4],b[4][4],i,j; /*a存放原始數組數據,b存放旋轉後數組數據*/
printf("input 16 numbers: ");
/*輸入一組數據存放到數組a中,然後旋轉存放到b數組中*/
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{ scanf("%d",&a[i][j]);
b[3-j][i]=a[i][j];
}
printf("array b: ");
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
printf("%6d",b[i][j]);
printf(" ");
}
}
6、/*編程列印直角楊輝三角形*/
main()
{int i,j,a[6][6];
for(i=0;i<=5;i++)
{a[i][i]=1;a[i][0]=1;}
for(i=2;i<=5;i++)
for(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<=5;i++)
{for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
printf(" ");}
}
7、/*通過鍵盤輸入3名學生4門課程的成績,
分別求每個學生的平均成績和每門課程的平均成績。
要求所有成績均放入一個4行5列的數組中,輸入時同一人數據間用空格,不同人用回車
其中最後一列和最後一行分別放每個學生的平均成績、每門課程的平均成績及班級總平均分。*/
#include <stdio.h>
#include <stdlib.h>
main()
{ float a[4][5],sum1,sum2;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
{ sum1=0;
for(j=0;j<4;j++)
sum1+=a[i][j];
a[i][4]=sum1/4;
}
Ⅳ 求最簡單的C語言程序
#include<stdio.h>
main()
{
int a,b,t=0;
scanf("%d %d",&a,&b);
if (a<b)
{
t=a;
a=b;
b=t;
}
printf("%d %d %d %d %d",(a+b),(a-b),(a/b),(a*b),(a%b));
}
Ⅳ 跪求100行左右的c語言簡單代碼,大一水平就行,什麼類型都可以。
//學生成績管理系統C代碼
/*頭文件*/
#include<stdio.h>
#include<dos.h>
#include<stdlib.h>/*其它說明*/
#include<string.h>/*字元串函數*/
#include<mem.h>/*內存操作函數*/
#include<ctype.h>/*字元操作函數*/
#include<alloc.h>/*動態地址分配函數*/
#defineLENsizeof(STUDENT)
typedefstructstu/*定義結構體數組用於緩存數據*/
{
charnum[6];
charname[5];
intscore[3];
intsum;
floataverage;
intorder;
structstu*next;
}STUDENT;
/*函數原型*/
STUDENT*init();/*初始化函數*/
intmenu_select();/*菜單函數*/
STUDENT*create();/*創建鏈表*/
voidprint(STUDENT*head);/*顯示全部記錄*/
voidsearch(STUDENT*head);/*查找記錄*/
STUDENT*delete(STUDENT*head);/*刪除記錄*/
STUDENT*sort(STUDENT*head);/*排序*/
STUDENT*insert(STUDENT*head,STUDENT*newnode);/*插入記錄*/
voidsave(STUDENT*head);/*保存文件*/
STUDENT*load();/*讀文件*/
/*主函數界面*/
main()
{
STUDENT*head,newnode;
head=init();/*鏈表初始化,使head的值為NULL*/
for(;;)/*循環無限次*/
{
switch(menu_select())
{
case1:head=create();break;
case2:print(head);break;
case3:search(head);break;
case4:head=delete(head);break;
case5:head=sort(head);break;
case6:head=insert(head,&newnode);break;/*&newnode表示返回地址*/
case7:save(head);break;
case8:head=load();break;
case9:exit(0);/*如菜單返回值為9則程序結束*/
}
}
}
/*初始化函數*/
STUDENT*init()
{
returnNULL;/*返回空指針*/
}
/*菜單選擇函數*/
menu_select()
{
intn;
structdated;/*定義時間結構體*/
getdate(&d);/*讀取系統日期並把它放到結構體d中*/
printf("pressanykeytoenterthemenu......");/*按任一鍵進入主菜單*/
getch();/*從鍵盤讀取一個字元,但不顯示於屏幕*/
clrscr();/*清屏*/
printf("******************************************************************************** ");
printf(" Welcometo ");
printf(" Thestudentscoremanagesystem ");
printf("*************************************MENU*************************************** ");
printf(" 1.Entertherecord ");/*輸入學生成績記錄*/
printf(" 2.Printtherecord ");/*顯示*/
printf(" 3.Searchrecordonname ");/*尋找*/
printf(" 4.Deletearecord ");/*刪除*/
printf(" 5.Sorttomakenewafile ");/*排序*/
printf(" 6.Insertrecordtolist ");/*插入*/
printf(" 7.Savethefile ");/*保存*/
printf(" 8.Loadthefile ");/*讀取*/
printf(" 9.Quit ");/*退出*/
printf(" MadebyHuHaihong. ");
printf("******************************************************************************** ");
printf(" %d\%d\%d ",d.da_year,d.da_mon,d.da_day);/*顯示當前系統日期*/
do{
printf(" Enteryourchoice(1~9):");
scanf("%d",&n);
}while(n<1||n>9);/*如果選擇項不在1~9之間則重輸*/
return(n);/*返回選擇項,主函數根據該數調用相應的函數*/
}
/*輸入函數*/
STUDENT*create()
{
inti,s;
STUDENT*head=NULL,*p;/*定義函數.此函數帶回一個指向鏈表頭的指針*/
clrscr();
for(;;)
{p=(STUDENT*)malloc(LEN);/*開辟一個新的單元*/
if(!p)/*如果指針p為空*/
{printf(" Outofmemory.");/*輸出內存溢出*/
return(head);/*返回頭指針,下同*/
}
printf("Enterthenum(0:listend):");
scanf("%s",p->num);
if(p->num[0]=='0')break;/*如果學號首字元為0則結束輸入*/
printf("Enterthename:");
scanf("%s",p->name);
printf("Pleaseenterthe%dscores ",3);/*提示開始輸入成績*/
s=0;/*計算每個學生的總分,初值為0*/
for(i=0;i<3;i++)/*3門課程循環3次*/
{
do{
printf("score%d:",i+1);
scanf("%d",&p->score[i]);
if(p->score[i]<0||p->score[i]>100)/*確保成績在0~100之間*/
printf("Dataerror,pleaseenteragain. ");
}while(p->score[i]<0||p->score[i]>100);
s=s+p->score[i];/*累加各門成績*/
}
p->sum=s;/*將總分保存*/
p->average=(float)s/3;/*先用強制類型轉換將s轉換成float型,再求平均值*/
p->order=0;/*未排序前此值為0*/
p->next=head;/*將頭結點做為新輸入結點的後繼結點*/
head=p;/*新輸入結點為新的頭結點*/
}
return(head);
}
/*顯示全部記錄函數*/
voidprint(STUDENT*head)
{
inti=0;/*統計記錄條數*/
STUDENT*p;/*移動指針*/
clrscr();
p=head;/*初值為頭指針*/
printf(" ************************************STUDENT************************************ ");
printf("------------------------------------------------------------------------------- ");
printf("|Rec|Num|Name|Sc1|Sc2|Sc3|Sum|Ave|Order| ");
printf("------------------------------------------------------------------------------- ");
while(p!=NULL)
{
i++;
printf("|%3d|%4s|%-4s|%3d|%3d|%3d|%3d|%4.2f|%-5d| ",
i,p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
p=p->next;
}
printf("------------------------------------------------------------------------------- ");
printf("**************************************END************************************** ");
}
/*查找記錄函數*/
voidsearch(STUDENT*head)
{
STUDENT*p;/*移動指針*/
chars[5];/*存放姓名用的字元數組*/
clrscr();
printf("Pleaseenternameforsearching. ");
scanf("%s",s);
p=head;/*將頭指針賦給p*/
while(strcmp(p->name,s)&&p!=NULL)/*當記錄的姓名不是要找的,或指針不為空時*/
p=p->next;/*移動指針,指向下一結點*/
if(p!=NULL)/*如果指針不為空*/
{printf(" *************************************FOUND************************************ ");
printf("------------------------------------------------------------------------------- ");
printf("|Num|Name|sc1|sc2|sc3|Sum|Ave|Order| ");
printf("------------------------------------------------------------------------------- ");
printf("|%4s|%4s|%3d|%3d|%3d|%3d|%4.2f|%-5d| ",
p->num,p->name,p->score[0],p->score[1],p->score[2],p->sum,p->average,p->order);
printf("------------------------------------------------------------------------------- ");
printf("***************************************END************************************** ");
}
else
printf(" Thereisnonum%sstudentonthelist. ",s);/*顯示沒有該學生*/
}
/*刪除記錄函數*/
STUDENT*delete(STUDENT*head)
{intn;
STUDENT*p1,*p2;/*p1為查找到要刪除的結點指針,p2為其前驅指針*/
charc,s[6];/*s[6]用來存放學號,c用來輸入字母*/
clrscr();
printf("Pleaseenterthedeletednum:");
scanf("%s",s);
p1=p2=head;/*給p1和p2賦初值頭指針*/
while(strcmp(p1->num,s)&&p1!=NULL)/*當記錄的學號不是要找的,或指針不為空時*/
{p2=p1;/*將p1指針值賦給p2作為p1的前驅指針*/
p1=p1->next;/*將p1指針指向下一條記錄*/
}
if(strcmp(p1->num,s)==0)/*學號找到了*/
{printf("**************************************FOUND************************************ ");
printf("------------------------------------------------------------------------------- ");
printf("|Num|Name|sc1|sc2|sc3|Sum|Ave|Order| ");
printf("------------------------------------------------------------------------------- ");
printf("|%4s|%4s|%3d|%3d|%3d|%3d|%4.2f|%-5d| ",
p1->num,p1->name,p1->score[0],p1->score[1],p1->score[2],p1->sum,p1->average,p1->order);
printf("------------------------------------------------------------------------------- ");
printf("***************************************END************************************** ");
printf("AreyousuretodeletethestudentY/N?");/*提示是否要刪除,輸入Y刪除,N則退出*/
for(;;)
{scanf("%c",&c);
if(c=='n'||c=='N')break;/*如果不刪除,則跳出本循環*/
if(c=='y'||c=='Y')
{
if(p1==head)/*若p1==head,說明被刪結點是首結點*/
head=p1->next;/*把第二個結點地址賦予head*/
else
p2->next=p1->next;/*否則將一下結點地址賦給前一結點地址*/
n=n-1;
printf(" Num%sstudenthavebeendeleted. ",s);
printf("Don'tforgettosave. ");break;/*刪除後就跳出循環*/
}
}
}
else
printf(" Thereisnonum%sstudentonthelist. ",s);/*找不到該結點*/
return(head);
}
/*排序函數*/
STUDENT*sort(STUDENT*head)
{inti=0;/*保存名次*/
STUDENT*p1,*p2,*t,*temp;/*定義臨時指針*/
temp=head->next;/*將原表的頭指針所指的下一個結點作頭指針*/
head->next=NULL;/*第一個結點為新表的頭結點*/
while(temp!=NULL)/*當原表不為空時,進行排序*/
{
t=temp;/*取原表的頭結點*/
temp=temp->next;/*原表頭結點指針後移*/
p1=head;/*設定移動指針p1,從頭指針開始*/
p2=head;/*設定移動指針p2做為p1的前驅,初值為頭指針*/
while(t->average<p1->average&&p1!=NULL)/*作成績平均分比較*/
{
p2=p1;/*待排序點值小,則新表指針後移*/
p1=p1->next;
}
if(p1==p2)/*p1==p2,說明待排序點值大,應排在首位*/
{
t->next=p1;/*待排序點的後繼為p*/
head=t;/*新頭結點為待排序點*/
}
else/*待排序點應插入在中間某個位置p2和p1之間,如p為空則是尾部*/
{
t->next=p1;/*t的後繼是p1*/
p2->next=t;/*p2的後繼是t*/
}
}
p1=head;/*已排好序的頭指針賦給p1,准備填寫名次*/
while(p1!=NULL)/*當p1不為空時,進行下列操作*/
{
i++;/*結點序號*/
p1->order=i;/*將結點序號賦值給名次*/
p1=p1->next;/*指針後移*/
}
printf("Sortingissucessful. ");/*排序成功*/
return(head);
}
/*插入記錄函數*/
STUDENT*insert(STUDENT*head,STUDENT*newnode)
{STUDENT*p0,*p1,*p2;
intn,sum1,i;
p1=head;/*使p1指向第一個結點*/
p0=newnode;/*p0指向要插入的結點*/
printf(" Pleaseenteranewnoderecord. ");/*提示輸入記錄信息*/
printf("Enterthenum:");
scanf("%s",newnode->num);
printf("Enterthename:");
scanf("%s",newnode->name);
printf("Pleaseenterthe%dscores. ",3);
sum1=0;/*保存新記錄的總分,初值為0*/
for(i=0;i<3;i++)
{
do{
printf("score%d:",i+1);
scanf("%d",&newnode->score[i]);
if(newnode->score[i]>100||newnode->score[i]<0)
printf("Dataerror,pleaseenteragain. ");
}while(newnode->score[i]>100||newnode->score[i]<0);
sum1=sum1+newnode->score[i];/*累加各門成績*/
}
newnode->sum=sum1;/*將總分存入新記錄中*/
newnode->average=(float)sum1/3;
newnode->order=0;
if(head==NULL)/*原來的鏈表是空表*/
{head=p0;p0->next=NULL;}/*使p0指向的結點作為頭結點*/
else
{while((p0->average<p1->average)&&(p1->next!=NULL))
{p2=p1;/*使p2指向剛才p1指向的結點*/
p1=p1->next;/*p1後移一個結點*/
}
if(p0->average>=p1->average)
{if(head==p1)head=p0;/*插到原來第一個結點之前*/
elsep2->next=p0;/*插到p2指向的結點之後*/
p0->next=p1;}
else
{p1->next=p0;p0->next=NULL;}/*插到最後的結點之後*/
}
n=n+1;/*結點數加1*/
head=sort(head);/*調用排序的函數,將學生成績重新排序*/
printf(" Student%shavebeeninserted. ",newnode->name);
printf("Don'tforgettosavethenewnodefile. ");
return(head);
}
/*保存數據到文件函數*/
voidsave(STUDENT*head)
{FILE*fp;/*定義指向文件的指針*/
STUDENT*p;/*定義移動指針*/
charoutfile[10];
printf("Enteroutfilename,forexamplec:\score ");
scanf("%s",outfile);
if((fp=fopen(outfile,"wb"))==NULL)/*為輸出打開一個二進制文件,為只寫方式*/
{
printf("Cannotopenthefile ");
return;/*若打不開則返回菜單*/
}
printf(" Savingthefile...... ");
p=head;/*移動指針從頭指針開始*/
while(p!=NULL)/*如p不為空*/
{
fwrite(p,LEN,1,fp);/*寫入一條記錄*/
p=p->next;/*指針後移*/
}
fclose(fp);/*關閉文件*/
printf("Savethefilesuccessfully! ");
}
/*從文件讀數據函數*/
STUDENT*load()
{STUDENT*p1,*p2,*head=NULL;/*定義記錄指針變數*/
FILE*fp;/*定義指向文件的指針*/
charinfile[10];
printf("Enterinfilename,forexamplec:\score ");
scanf("%s",infile);
if((fp=fopen(infile,"rb"))==NULL)/*打開一個二進制文件,為只讀方式*/
{
printf("Cannotopenthefile. ");
return(head);
}
printf(" Loadingthefile! ");
p1=(STUDENT*)malloc(LEN);/*開辟一個新單元*/
if(!p1)
{
printf("Outofmemory! ");
return(head);
}
head=p1;/*申請到空間,將其作為頭指針*/
while(!feof(fp))/*循環讀數據直到文件尾結束*/
{
if(fread(p1,LEN,1,fp)!=1)break;/*如果沒讀到數據,跳出循環*/
p1->next=(STUDENT*)malloc(LEN);/*為下一個結點開辟空間*/
if(!p1->next)
{
printf("Outofmemory! ");
return(head);
}
p2=p1;/*使p2指向剛才p1指向的結點*/
p1=p1->next;/*指針後移,新讀入數據鏈到當前表尾*/
}
p2->next=NULL;/*最後一個結點的後繼指針為空*/
fclose(fp);
printf("! ");
return(head);
}
Ⅵ 求幾個比較有趣,簡單的C語言源代碼 小白自己敲著練一下手感
最簡單的模擬計時器:
#include<stdio.h>
#include<conio.h>
#include<windows.h>
int m=0,s=0,ms=0; //m是分 s是秒 ms是毫秒
//以下是5個自編函數
void csh( ); //初始化界面
void yinc(int x,int y); //隱藏游標的函數(y值設為0就會隱藏)
void jishi( ); //計時器運行(每100毫秒變化一次)
void Color (short x, short y); //設定顏色的函數(y設為0就是黑底)
void gtxy (int x, int y); //控制游標位置的函數
int main( ) //主函數
{ csh( );
getch( );
while(1)
{ jishi( );
Sleep(100); //間隔100毫秒
if( kbhit( ) )break; //有鍵按下就退出循環
}
return 0;
}
void csh( ) //初始化界面
{Color(14,0); //設定淡黃字配黑底
printf(「 計時器」);
Color(10,0); //設定淡綠字配黑底
printf(" ┌───────────┐");
printf(" │ │");
printf(" └───────────┘");
gtxy(10,4); //游標到屏幕第10列4行處輸出
Color(7,0); //恢復白字黑底
printf(" 00:00:00 ");
yinc(1,0 ); //隱藏游標(yinc代表隱藏)
return;
}
void jishi( ) //計時器運行
{ms+=1;
if(ms==10){s+=1;ms=0;}
if(s==60){m+=1;s=0;}
gtxy(10,4);
Color(9,0); //設定淡藍字配黑底
if(m>9) printf(" %d:",m);
else printf(" 0%d:",m);
Color(14,0); //設定淡黃字配黑底
if(s>9) printf("%d:",s);
else printf("0%d:",s);
Color(12,0); //設定淡紅字配黑底
printf("0%d",ms);
}
void gtxy (int x, int y) //控制游標位置的函數
{ COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );
}
void Color (short ForeColor= 7, short BackGroundColor= 0) //設定顏色的函數
{ HANDLE handle = GetStdHandle ( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute ( handle, ForeColor + BackGroundColor * 0x10 );
}
void yinc(int x,int y) //隱藏游標的設置(gb代表游標)
{ CONSOLE_CURSOR_INFO gb={x,y}; //x為1-100,y為0就隱藏游標
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &gb);
}
Ⅶ 寫一個簡短的C語言代碼
最簡單的C語言代就是輸出「helloWord」,通常是作為初學編程語言時的第一個程序代碼。具體代碼如下:
#include <stdio.h>
int main(){
printf("Hello, World! ");
return 0;
}
(7)簡單c語言代碼擴展閱讀:
1、程序的第一行#include <stdio.h>是預處理器指令,告訴 C 編譯器在實際編譯之前要包含 stdio.h 文件。
2、下一行intmain()是主函數,程序從這里開始執行。
3、下一行printf(...)是C中另一個可用的函數,會在屏幕上顯示消息"Hello,World!"。
4、下一行return0;終止main()函數,並返回值0。
Ⅷ 求很簡單3個C語言代碼,參考
1.
#include<stdio.h>
void
main()
{
double
num1
=
0,
num2
=
0;
printf("請輸入兩個實數:");
scanf("%lf%lf",
&num1,
&num2);//輸入時以空格隔開2個數
printf("他們的和是%lf,他們的積是%lf\n",num1+num2,num1*num2);
}
2.
#include<stdio.h>
void
main()
{
int
i
=
2,
sum
=
0;
for(;
i
<
102;
sum
+=
i,
i
+=
2);
printf("2+4+6+...+100
=
%d\n",
sum);
}
3.
#include<stdio.h>
void
main()
{
int
num1
=
0,
num2
=
0,
num3
=
0;
int
min
=
num1;
printf("請輸入3個整數:");
scanf("%d%d%d",
&num1,
&num2,
&num3);
if(min
>
num2)
min
=
num2;
if(min
>
num3)
min
=
num3;
printf("最小數是
%d\n",
min);
}