由键盘任意输入1个4位数整数,分别输出其中的个位、十位、百位、千位。
/* expe 3-10 */
#include
#include
void main(void)
{
int mun,a,b,c,d;
scanf("%d",&mun);
a=mun / 1000; /*千位*/
b=(mun % 1000) / 100; /*百位*/
c=(mun % 100) / 10; /*十位*/
d=(mun % 10); /*个位*/
printf("千位数字为=%d\n",a);
printf("百位数字为=%d\n",b);
printf("十位数字为=%d\n",c);
printf("个位数字为=%d\n",d);
}
由键盘任意输入3个数据,找出其中的最大数和最小数。
#include
void main(void)
{
float a,b,c,k,g;/* k 小g 大*/
printf ("请输入三个数");
scanf("%f%f%f",&a,&b,&c);
if (a < b)
{
k = a;
g = b;
}
else
{
k = b;
g = a;
}
if (k < c)/*最小*/
{ printf ("\n最小的数=%5.2f",k);}
else
{printf ("\n最小的数=%5.2f",c);}
if (g > c)/*最大*/
{printf ("\n最大的数=%5.2f",g);}
else
{printf ("\n最大的数=%5.2f",c);} }
判断三角形的形状
#include
#include
void main(void)
{
printf("请输入三角形三边");
float a,b,c,p,s,k1,k2,k3;
scanf("%f%f%f",&a,&b,&c);
while (a + b < c || b + c < a || a + c < b )
{
printf("不能构成三角形,请重新输入");
scanf("%f%f%f",&a,&b,&c);
}
k1 = a * a;
k2 = b * b;
k3 = c * c;
if (a == b && b == c && c ==a)
{printf("此三角形为等边三角形");}
else if (a == b || b == c || c ==a)
{printf("此三角形为等腰三角形"); }
else if ((k1 == b * b + c * c) || (k2 == a * a + c *
c) || (k3 = a * a + b * b))
{printf("此三角形为直角三角形");}
else
{printf("此三角形为一般三角形");} }
九九乘法表
整体
#include
void main(void)
{
int i,j;
for (i = 1;i < 10; i ++)
{
for(j = 1;j < 10; j ++)
{printf("%5d",i * j);}
printf("\n"); } }
右半边
#include
void main(void)
{
int i,j;
for (i = 1;i < 10; i ++)
{
for(j = 1;j <= i; j ++)
{ printf("%5d",i * j);}
printf("\n"); } }
左半边
#include
void main(void)
{
int i,j;
for (i = 1;i < 10;i ++)/*最外层循环*/ {
for (j = 1;j < i; j++)/*打空格*/
{ printf(" "); }
for (j = 1;j <= 10 - i;j ++)/*计算*/
{printf("%5d",j * i); }
printf("\n"); } }
打印菱形
#include
void main(void)
{
int i,j,k;
for (i = 1;i <= 5;i ++)
{
for (j = 0;j < 5 - i;j ++)
{printf(" ! "); }
for (k = 1;k <= 2 * i - 1;k ++)
{printf(" * "); }
printf("\n");
}
for (i = 4;i >= 0;i --)
{
for (j = 4 - i;j > 0;j --)
{printf(" ! "); }
for (k = 2 * i ;k >= 0;k --)
{ printf(" * ");}
printf("\n"); } }
找回文
#include
#include
void main(void)
{
char str[80];
int i,j,iStrlenstr,iFlag;
printf("请输入字符串\n");
gets(str);
iStrlenstr = strlen(str);
for (i = 0 ,j = iStrlenstr - 1;i <= j ;i ++, j --)
{
if (str[i] == str[j])
{iFlag = 1; }
else
{iFlag = 0;break; }
}
if (iFlag == 1)
{printf("输入的是回文!\n"); }
else
{printf("输入的不是回文!\n"); }
}
找名字
指针法
/*不用查找函数,用指针的方法*/
#include
void main(void)
{
char str[10][80],a[80],*p[10],*q = NULL;
int i, j,iFlag = 0;
// int istrlenstr;
printf("请输入名字\n");
for ( i = 0 ; i < 10; i ++)
{
gets(str[i]);
}
printf("请输入想查找的名字\n");
gets(a);
for (i = 0; i < 10; i ++)
{p[i] = str[i]; }
q = a;
for (i = 0; i < 10; i ++ )
{
iFlag = 0;
j = 0;
while(*(p[i] + j) && *(q + j))
{
if (*(p[i]+ j) != *(q + j))
{break; }
j++;
}
if (*(p[i] + j)== '\0' && *(q + j) == '\0')
{ iFlag = 1;break; }
}
if (iFlag == 1)
printf("FOUND ! 该名字的位置为%d",i);
else
printf("NOT FOUND !"); }
/*利用指针给10个数排序*/
#include
int main(void)
{
int a[10],*p = NULL ,iTem;
int i,j,iPos = 0;
printf("请输入10个数\n");
for (i = 0; i < 10; i ++)
{scanf("%d",&a[i]); }
p = a;
for(i = 0; i < 9; i ++)
{
iPos = i;
for (j = i + 1 ; j < 10 ;j ++)
{
if (a[j]< a[iPos])
iPos = j;
}
iTem = *(a + i);
*(a + i) = *(a + iPos);
*(a + iPos) = iTem;
}
printf("排序之后的为");
for (i = 0; i < 10; i ++)
{printf("%4d",*(a + i)); }
return 0; }
/*名字排序,从大到小*/
#include
#include
void main(void)
{
char a[10][10],cTemp[10];
int i,j,iMax;
printf("输入十个学生姓名:\n");
for(i = 0; i < 10; i ++)
{gets(a[i]);}
for(i = 0;i < 10 ;i ++)
{
iMax = i;
for(j = i + 1;j < 10;j ++)
{
if(strcmp(a[iMax],a[j]) < 0)
{iMax = j;}
}
if(iMax != i)
{
strcpy(cTemp,a[i]);
strcpy(a[i],a[iMax]);
strcpy(a[iMax],cTemp);
}
}
printf("按照字典降序排序为:\n");
for(i = 0;i < 10;i ++)
{puts(a[i]);} }
/*查找并删除某字符*/
#include
int main()
{
char str[80],*p = NULL,*q;
char t;
printf("请输入字符串:\n");
gets(str);
printf("请输入想要删除的字符:\n");
t = getchar();
p = str;
q = str;
for (p = str; *p != '\0'; p ++)
{
if (*p != t)
{*q++ = *p; }
}
*q = '\0';
puts(str);}
函数作业(全部)
/*交换器,引用全局变量*/
方法一
int a,b;
void main(void)
{
scanf("%d%d",&a,&b);
fun();
printf("a=%d,b=%d\n",a,b);
}
void fun(void)
{
int c;
c = a;
a = b;
b = c;
}
方法二
#include
#define swap(x,y) {int tmp=x;x=y;y=tmp;}
int main()
{
int x,y;
printf("请输入两个数字\n");
scanf("%d%d",&x,&y);
swap(x,y);
printf("交换之后的数字是\n");
printf("%d\t%d\t",x,y);
return 0;
}
/*用函数找最大公约数*/
#include
int maxd(int,int);
int main()
{
int a,b,d;
printf("请输入两个整数\n");
scanf("%d%d",&a,&b);
d = maxd(a,b);
printf("这两个数的最大公约数为:%d",d);
return 0;
}
int maxd(int a,int b)
{
int m,n,k;
if(a
{
m = b;
n = a;
}
else
{
m = a;
n = b;
}
do
{
k = m%n;
m = n;
n = k;
}while(n != 0);
return(m);}
/*用函数统计*/
#include
int icount(char* );
int main()
{
char str[80];
int m = 0;
printf("请输入字符串\n");
gets(str);
m = icount(str);
printf("字符串中数字的个数有:%d",m);
return 0;
}
int icount(char *p)
{
int k = 0;
while( *p != '/0')
{
if (*p >= '0' && *p <= '9')
k ++;
}
return k;}
/*排序函数*/
#include
#include
void iSort (int[],int);
int main()
{
int a[10];
int i;
printf("请输入10个整数\n");
for (i = 0; i < 10 ; i ++)
{scanf("%d",&a[i]); }
iSort(a,10);
printf("从小到大排序为\n");
for (i = 0; i < 10; i ++)
{ printf("%4d",a[i]); } }
void iSort(int x[],int n)
{
int i,j,t,iPos;
for (i = 0; i < n - 1; i ++)
{
iPos = i;
for (j = i + 1; j < n; j ++)
{
if (x[j] < x[iPos])
iPos = j ;
}
if (iPos != i)
{
t = x[i];
x[i] = x[iPos];
x[iPos] = t; } } }
/*用函数找素数*/
#include
int iPrime(int);
int main()
{
int i,k = 0;
for (i = 1; i < 201; i += 2)
{
k = iPrime(i);
if (k == 1)
printf("%d\n",i); } }
int iPrime(int x)
{
int a;
for (a = 2; a <= x/2; a ++)
{
if (x % a == 0)
return 0;
}
return 1; }
/*八进制转十进制*/
#include
int iChange(char*);
int main()
{
char s[10];
int i,k;
printf("请输入一个八进制的数");
gets(s);
k = iChange(s);
printf("对应的十进制的数位=%d",k); }
int iChange(char *x)
{
char *p;
int n = 0;
p = x;
for(;*p != '\0'; p ++)
{n = n * 8 + *p - '0'; } }
/*用函数将矩阵转置
规定是方阵*/
#include
void change(int[][4]);
int main()
{
int a[4][4],b[4][4]={0};
int i,j;
printf("请输入一个四阶矩阵\n");
for (i = 0; i < 4; i ++)
{
for (j = 0; j < 4 ;j ++)
{ scanf("%d",&a[i][j]); }
}
change(a);
printf("转置过后的矩阵式\n");
for (i = 0; i < 4; i ++)
{
for (j = 0; j < 4 ;j ++)
{printf("%3d",a[i][j]);}
printf("\n"); } }
void change(int x[][4])
{
int i,j,t;
for (i = 0;i < 4; i ++)
{
for (j = 0; j < i; j ++)
{
t = x[i][j];
x[i][j] = x[j][i];
x[j][i] = t; } } }
/*判断是否是对称矩阵
以4*4 的矩阵为例*/
#include
int dui(int[][4]);
int main()
{
int a[4][4],i,j,k = 0;
printf("请输入一个四阶矩阵\n");
for (i = 0; i < 4; i ++)
{
for (j = 0; j < 4 ;j ++)
{scanf("%d",&a[i][j]);}
}
k = dui(a);
if (k == 1)
{printf("该矩阵为对称矩阵"); }
else
{printf("该矩阵不是对称阵");} }
int dui(int x[][4])
{
int i,j,t = 0;
for (i = 0;i < 4; i ++)
{
for (j = 0; j < i; j ++)
{
if (x[i][j] == x[j][i])
t = 1;} }
return t;}
/*用函数求cos与sin*/
#include
#include
float icos(float);
float isin(float);
int main() {
float a,cosx,sinx;
printf("请输入x\n");
scanf("%f",&a);
cosx = icos(a);
sinx = isin(a);
printf("cos(x)=%7.2f\n",cosx);
printf("sin(x)=%7.2f\n",sinx);
}
float icos(float a)
{
int n = 2;
float t,k,fcos;
k = 0;
t = 1;
do
{
t *= (-1) * a * a / (n *( n - 1));
k += t;
n += 2;
}
while (fabs(t) >= 1e-6);
fcos = 1 + k;
return fcos;
}
float isin(float a)
{
float fsin;
fsin=sqrt(1 - (double)icos(a) * (double)icos(a));
return fsin;
}
/*int n = 3;
float t,k,fsin;
k = 0;
t = 1;
do
{
t *= (-1) * a * a / (n * (n - 1));
k += t;
n += 2;
}
while (fabs(t) >= 1e-6);
fsin =1 + k;
return fsin;*/
/*用函数分别统计26个字母的个数*/
#include
void jishu(char str[]);
int iCount1[26] = {0};
void main(void)
{
char str[80];
int i;
printf("请输入字符串");
gets(str);
jishu(str);
printf("26个大写字母的个数分别是\n");
for (i = 0; i < 26; i ++)
{printf("%d\n",iCount1[i]);}
}
void jishu(char x[])
{
int i;
for (i = 0; x[i] != '\0'; i ++)
{
if (x[i] >= 'A' && x[i] <= 'Z')
{iCount1[x[i] - 'A'] ++; } } }
位运算
/*地位字节按位取反*/
#include
void main(void)
{
unsigned int x;
printf("请输入数据:");
scanf("%d",&x);
x = x ^ 0X00ff;
printf("%x\n",x);} /*循环移位
通过位或运算来实现循环的功能*/
#include
void main(void)
{
int a,n;
printf("请输入一个整数:\n");
scanf("%d",&a);
printf("请输入移动的位数:\n");
printf("注意:正数代表右移,负数代表左移
");
scanf("%d",&n);
if(n > 0)
{
a = ((a >> n) | (a << ((8 * sizeof(int)) - n)));//右移
}
if(n < 0)
{a = ((a << (- n)) | (a >> ((8 * sizeof(int)) - (-
n))));//左移}
printf("%u\n",a);}
/*利用位异或运算加密*/
#include
int main()
{
int stc,code,dst;
dst = 0;//加密后
code = 1234;//密码
printf("请输入明文:\n");
scanf("%d",&stc);
dst = stc ^ code;
printf("\n加密之后的文件是:%d\n",dst);
return 0;
}
/*偶数为清零*/
#include
void main(void)
{
int a;
printf("请输入");
scanf("%d",&a);
a = a & 0x5555;
printf("%x\n",a);
}
/*十六进制转二进制*/
#include
void main(void)
{
int a,b[32],c = 1,i;
scanf("%x",&a);
for(i = 0; i < 32; i ++)
{
b[i] = (a & c) >> i;
c <<= 1;
}
for(i = 31; i >= 0; i --)
{ printf("%d",b[i]); } }
员工工资
#include
#define N 1
struct man
{
long ch;
char nam[10];
int year;
float fareJB;
float fareYJ;
float fareYF;
float fareBX;
float fareSD;
float fareSF;
};
void fare(struct man *p) {
struct man *q;
for(q=p;q
{
q->fareYF=p->fareJB+p->fareYJ;
q->fareSF=q->fareYF-q->fareBX-q->fareSD;
}
for(q=p;q
{
printf("应发工资\t实发工资\n");
printf("%5.2f\t%5.2f\n",q->fareYF,q->fareSF);
} }
void PRINTF(struct man *p)
{
struct man *q=p;
printf("职工工号\t姓名\t年龄\t基本工资\t
业绩工资\t应发工资\t保险费\t\t水电费\t
实发工资\t\n");
for(q=p;q
{
printf("%8d%10s\t%d\t%8.2f\t%8.2f\t%8.2f\t
%8.2f\t%8.2f\t%8.2f\t",q->ch,q->nam,q->year,q->f
areJB,q->fareYJ,q->fareYF,q->fareBX,q->fareSD,q->f
areSF);
} }
void main(void)
{
struct man person[N],*per;
printf("输入员工信息");
for(per=person;per {gets(per->nam); scanf("%d%d%f%f%f%f",&per->ch,&per->year ,&per->fareJB,&per->fareYJ,&per->fareBX,&per->fa reSD); } fare(person); PRINTF(person); } 部门销售情况管理程序 #include #define N 1 struct bumen { long num; char name[20]; float get[4]; float ave; }a[N]; void chazhao(struct bumen *p) { long NUM; int i; printf("输入要查找的部门的代码:"); scanf("%ld",&NUM); printf("\n"); for(i=0;i { if((p+i)->num==NUM) { break; } } printf("部门代码\t部门名称\t春季销售额\t 夏季销售额\t秋季销售额\t冬季销售额\t平均值\n"); printf("%ld\t %6s\t\t%8.2lf\t%8.2lf\t%8.2 lf\t%8.2lf\t%8.2lf\t\n ",p->num,p->name,p->get[0],p->get[1],p->get[2],p->get[3],p->ave); } void qiuave(struct bumen *p) { int i,j; float sum=0; for(i=0;i { for(j=0;j<4;j++) {sum=sum+p[i].get[j];} p[i].ave=sum/4; } } void order(struct bumen *p) { struct bumen *min,P; int i,j,k; for(i=0;i { min=&p[i]; for(j=i+1;j { if(p[j].ave min=&p[j]; } P=p[i];p[i]=*min;*min=P; } printf("部门代码\t部门名称\t春季销售额\t 夏季销售额\t秋季销售额\t冬季销售额\t平均值 \n"); for(k=0;k { printf("%ld\t %6s\t\t%8.2lf\t%8.2lf\t%8.2 lf\t%8.2lf\t%8.2lf\t\n ",p[k].num,p[k].name,p[k].get[0],p[k].get[1],p[k].g et[2],p[k].get[3],p[k].ave); } } void main(void) { int i,j,n,x; float t; printf("输入部门数据"); for(i=0;i { scanf("%ld",&a[i].num); scanf("%s",&a[i].name); for(j=0;j<4;j++) { scanf("%f",&t); a[i].get[j]=t; } } printf("1.输入部门代码或部门名称,查找此 部门的销售情况\n2.计算各部门的平均销售额。 \n3.将销售情况表按各部门的平均销售额由高到 低排序\n"); for(x=0;x<3;x++) { printf("输入调用的函数序号:"); scanf("%d",&n); printf("\n"); switch(n) { case 1:chazhao(a);break; case 2:qiuave(a);break; case 3:order(a);break; } } } 链表 /*与链表相关*/ #include #include #define SIZE sizeof(struct Note) struct Note { int value; struct Note *pNext; }; /*原型声明*/ struct Note * Creatlist(void); int Traverlist(struct Note * ); int searchlist(struct Note * ,int); int Deletelist(struct Note *,int); void Printlist(struct Note * ); /*----------主函数----------------------------------------*/ void main(void) { int a,k,l,m; int iFound,iDelete; struct Note *num; num = Creatlist(); while (1) { printf("1.统计\n2.查找\n3.插入\n4.删除 \n5.打印\n6.退出\n请输入以选择:\n"); scanf("%d",&a); if (a == 1) { k = Traverlist(num); printf("整型数据的个数是:%d\n",k); } if (a == 2) { printf("请输入想要查找的数:"); scanf("%d",&iFound); l = searchlist(num,iFound); if (l == 1) printf("404 NOT FOUND\n"); } if (a == 3) {printf("404 NOT FOUND\n");} if (a == 4) { printf("请输入想删除的项目"); scanf("%d",iDelete); m =Deletelist(num , iDelete); if (m == 0) printf("删除成功\n"); else printf("删除失败\n"); } if (a == 5) {void Printlist(num); } if (a == 6) {exit(1);} } } /*----------主函数到此结束-------------------*/ struct Note * Creatlist(void)//建立链表 { struct Note *spHead,*spPre,*spCur; int a; spPre = (struct Note *)malloc(SIZE); spHead = spPre; spHead -> pNext = NULL; do { scanf("%d",&a); if (a != 0) { spCur = (struct Note *)malloc(SIZE); spCur -> value = a; spCur -> pNext = NULL; spPre -> pNext = spCur; spPre = spCur; } }while(a != 0);//以输入0作为结束 return spHead; } int Traverlist(struct Note * sp)//统计 { struct Note *spCur; int b = 0; spCur = sp -> pNext; while(spCur != NULL ) { b ++; spCur = spCur -> pNext; } return b; } int searchlist(struct Note *sp,int x)//查找 { struct Note *spCur; spCur = sp -> pNext; while (spCur -> pNext != NULL && spCur -> value != x) {spCur = spCur -> pNext; } if (spCur -> value == x) { printf("THE NUMBER IS %d",spCur -> value); return 0; } else {return 1;} } int Deletelist(struct Note *sp,int x)//删除 { struct Note *spCur,*spT; spCur = sp; while(spCur -> pNext != NULL && spCur -> pNext -> value != x) {spCur = spCur ->pNext; } if (spCur -> pNext == NULL) {return 1; } spT = spCur -> pNext; spCur -> pNext = spCur -> pNext -> pNext; free(spT); return 0;} void Printlist(struct Note *sp) { struct Note *spCur; spCur = sp -> pNext; printf("链表中的整型数据为:/n"); while (spCur != NULL) { printf("%d\n",spCur -> value); spCur = spCur -> pNext; } printf("\n"); } 学生成绩 1.0版本 /*五个学生四门功课成绩排名 感觉像是回到了高中=。= 第一次录入时,总分,均分输入0!*/ #include #define swap(x,y) {int tmp=x;x=y;y=tmp;} /*定义了一个交换器函数不然感觉很烦人*/ void main(void) { int iCj[5][7]={0}; int i,j,k; int iPos,iTem = 0; printf("请依次输入五位学生的学号和各科 成绩\n"); for (i = 0; i < 5; i ++) { for (j = 0; j < 7; j ++) {scanf("%d",&iCj[i][j]);} } for (i = 0; i < 5; i ++ ) { for (j = 1; j < 5; j ++ )/*第一列是学号=。=*/ { iCj[i][5] += iCj[i][j]; iCj[i][6] = iCj[i][5] / 4 ;/*真正的总分和均分*/ } } for (i = 0; i < 4; i ++) { iPos = i; for(j = i + 1; j < 5; j ++) if (iCj[j][5] > iCj[iPos][5]) iPos = j; for (k=0;k<7;k++) swap(iCj[i][k],iCj[iPos][k]); } for (i = 0; i < 5; i ++) { for (j = 0; j < 7; j ++ ) {printf("%d\t",iCj[i][j]);} printf("\n"); } } /*学生成绩系统2.0*/ #define N 3 #include struct student { long num; char name[20]; float score[2]; }st[N],*p; int high(struct student *); void ave(struct student * ,int *); #define swap(x,y) {struct student tmp = x; x = y; y = tmp;} void mysort(struct student st[N]); void main(void) { int i,j,iPos,iAve[N]; float t; p = st; printf("请录入学生的各项信息\n"); for (i = 0; i < N; i ++) { scanf("%ld",&st[i].num); gets(st[i].name); for (j = 0;j < 2; j ++) { scanf("%f",&t); st[i].score[j] = t; } }/*完成了输入数据的工作*/ iPos = high(st);/*找最好*/ printf("学号姓名\t成绩1\t成绩2\n"); printf("%ld %s\t",st[iPos].num,st[iPos].name); for (j = 0; j < 2; j ++) {printf("%f\t",st[iPos].score[j]); } printf("\n"); ave(st,iAve);/*两门成绩都在平均分以下的*/ printf("学号姓名\t\n"); for (i = 0;i < N; i ++) { if (iAve[i] != 0) {printf("%ld %s\t",st[i].num,st[i].name); } printf("\n"); } mysort(st); printf("学号姓名\t成绩1\t成绩2\n"); for (i = 0;i < N; i ++) { printf("%ld %s\t",st[i].num,st[i].name); for (j = 0; j < 2; j ++) {printf("%f\t",st[i].score[j]); } printf("\n"); } } /*-----------------------主函数到此结束---------------*/ /*找最好成绩*/ int high(struct student *x) { int i,iPos = 0; float c[N]; for (i = 0; i < N; i ++) {c[i] = (st[i].score[0] > st[i].score[1]) ? st[i].score[0] : st[i].score[1];} iPos = 0; for (i = 1; i < N; i ++) { if(c[i] > c[iPos]) {iPos =i;} } return iPos; } /*找在平均分以下的*/ void ave(struct student st[N], int *x) { float ave1 = 0,ave2 = 0; int i; for (i = 0; i < N; i ++) { ave1 = st[i].score[0]; ave2 = st[i].score[1]; } ave1 = ave1 / N; ave2 = ave2 / N; for (i = 0; i < N; i ++) { if (st[i].score[0] <= ave1 && st[i].score[1] <= ave2) { x[i] = i;} } } /*以第一门课的成绩排名*/ void mysort(struct student st[N]) { int i,j,iPos = 0; for (i = 0; i < N - 1; i ++) { iPos = 0; for (j = i + 1; j < N; j ++) { if (st[i].score[i] < st[i].score[iPos]) iPos = i; } swap(st[i],st[iPos]); } } /*学生成绩3.0文件版录入统计三科成绩*/ #include #include #define N 5 struct student { char name[20]; long ID; float score[3]; float fAve; float fSum; }st[N]; int main(void) { FILE *fpGet; int i,j; float t; fpGet = fopen("a.txt","w"); if (fpGet == NULL) { printf("error !"); return 1; } printf("请输入学生信息\n"); for(i = 0; i < N; i ++) { scanf("%s",st[i].name); scanf("%ld",&st[i].ID); for (j = 0;j < 3; j ++) { scanf("%f",&t); st[i].score[j] = t; } }//完成输入 for(i = 0; i < N; i ++) { fprintf(fpGet,"%s\t%ld\t",st[i].name,st[i].ID); for(j = 0; j < 3; j ++) {fprintf(fpGet,"%5.2f\t",st[i].score[j]); } fprintf(fpGet,"\n"); } fclose(fpGet); return 0; } /*学生成绩2.0文件版,处理从文件中读取并统计平均,总分*/ #include #include #define N 5 struct student { char name[20]; long ID; float Score[3]; float fAve; float fSum; }st[N]; int main(void) { FILE *fpIn,*fpOut; int i,j,iPos=0; struct student sTem; fpIn = fopen("a.txt","r"); if(fpIn == NULL) { printf("error !"); return 1; } fpOut = fopen("stut.txt","w"); if(fpOut == NULL) {printf("error !");return 1; } for(i = 0; i < N; i ++) { fscanf(fpIn,"%s%ld%f%f%f",st[i].name,&st[i].ID, &st[i].Score[0],&st[i].Score[1],&st[i].Score[3]); st[i].fSum = st[i].Score[0] + st[i].Score[1] + st[i].Score[1]; st[i].fAve = st[i].fSum / 3.0f; }//输入 for(i = 0; i < N; i ++) { printf("%s\t%ld\t",st[i].name,st[i].ID); for(j = 0; j < 3; j ++) {printf("%5.2f\t",st[i].Score[j]);} printf("%5.2f\t%5.2f",st[i].fAve,st[i].fSum); printf("\n"); } for(i = 0 ;i < N - 1 ;i ++)//排序 { iPos = i; for(j = i + 1 ;j < N ;j ++) { if(st[iPos].fSum > st[j].fSum) iPos = j; } sTem = st[iPos] ; st[iPos] = st[i]; st[i] = sTem; } for(i = 0; i < N; i ++) { fprintf(fpOut,"%s\t%ld\t",st[i].name,st[i].ID); for(j = 0; j < 3; j ++) {fprintf(fpOut,"%5.2f\t",st[i].Score[j]); } fprintf(fpOut,"%5.2f\t%5.2f",st[i].fAve,st[i].fSum); fprintf(fpOut,"\n"); } printf("FINISH !"); fclose(fpIn); fclose(fpOut); return 0; } 1.要求在屏幕上输出下一行信息。 This is a c program. 程序: #include #include #include #include 创作编号: GB8878185555334563BT9125XW 创作者:凤呜大王* 1.要求在屏幕上输出下一行信息。 This is a c program. 程序: #include sum=a+b; printf(“sum is %d\n”,sum); return 0; } 3.求两个整数之间的较大者。 程序: #include } 4.有人用温度计测量出华氏发表示的温度(如69°F),今要 求把她转换成以摄氏法表示的温度(如20℃)。 公式:c=5(f-32)/9. 其中f代表华氏温度,c代表摄氏温度。 程序: #include c语言基本代码 Prepared on 22 November 2020 '\0':是字符串的结束标志 ‘‘:空格 auto:声明自动变量一般不使用 double:声明双精度变量或函数(和%lf连用), m=(double)(v-l)/l*100+; 这个式子加个double是将后面式子中非double类型强制转换类型为double float:声明浮点型变量或函数(和%f连用),单精度 int:声明整型变量或函数(与%d连用) struct:声明结构体变量或函数 long:声明长整型变量或函数 switch:用于开关语句 enum:声明枚举类型 register:声明积存器变量 typedef:用以给数据类型取别名(当然还有其他作用) extern:声明变量是在其他文件正声明(也可以看做是引用变量) return:子程序返回语句(可以带参数,也看不带参数) union:声明联合数据类型 const:声明只读变量 short:声明短整型变量或函数 unsigned:声明无符号类型变量或函数 signed:生命有符号类型变量或函数 void:声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)default:开关语句中的“其他”分支 goto:无条件跳转语句 sizeof:计算数据类型长度,,是整型表达式用法sizeof(类型说明符,数组名或表达式);sizeof()是获取类型占用的字节数,是整形的 volatile:说明变量在程序执行中可被隐含地改变 static:声明静态变量 char:声明字符型变量或函数 strcmp:strcmp(s1,s2)比较字符串大小两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止大于返回1小于返回-1等于返回0 循环: for:一种循环语句(可意会不可言传)for(表达式1;表达式2;表达式3)while:循环语句的循环条件 do:循环语句的循环体 break:跳出当前循环 continue:结束当前循环,开始下一轮循环 判断: d=a>30b:c:相当于if暨当a>30是d=b否则d=c; 由键盘任意输入1个4位数整数,分别输出其中的个位、十位、百位、千位。 /* expe 3-10 */ #include /**返回的long型的最大值是startLongValue+count-1(产生一个随机数) * param needCount * param count * param startLongValue * return */ public static List 1.编写一个C程序,输入a、b、c三个数,输出其中最大者。 #include "stdio.h" void main() { int paixu(int a,int b,int c); int a1,a2,a3,m; scanf("%d %d %d",&a1,&a2,&a3); m=paixu(a1,a2,a3); printf("%d",m); } int paixu(int a,int b,int c) { int max(int x,int y); int m; m=max(a,b); m=max(m,c); } int max(int x,int y) { if(x>y) return x; else return y; } 依次将10个数输入,要求将其中最大的数打印出来。 #include "stdio.h" void main() { int a[10],i,m; for(i=0;i<10;i++) scanf("%d",&a[i]); m=a[0]; for(i=1;i<10;i++) if(a[i]>m){m=a[i];} printf("最大数是:"); printf("%d\n",m); } 有3个数a、b、c,要求按从大到小的顺序把它们打印出来。 #include "stdio.h" void main() { int a[3]; int m,i,j; for(i=0;i<3;i++) scanf("%d",&a[i]); for(i=1;i<3;i++) for(j=0;ja[j]) {m=a[j];a[j]=a[i];a[i]=m;} printf("按由大到小排列:"); for(i=0;i<3;i++) printf("%d ",a[i]); } 求1+2+3+ (100) #include "stdio.h" void main() { int i,sum=0; for(i=1;i<=100;i++) { sum=sum+i; } printf("1+2+3+……+100=%d\n" ,sum); } 判断一个数n能否同时被3和5除。 #include "stdio.h" void main() { int a,b; printf("请输入一个整数\n"); scanf("%d",&a); if(a%3==0 && a%5==0) printf("能同时被3和5整除\n"); else printf("不能同时被3和5整除\n"); } 将100~200之间的素数打印出来。 C语言程序设计 <一> 1、程序运行从main()函数开始,也从main()函数结束。 2、函数是C程序的基本单位,由函数头和函数体组成。 3、C语言源程序是由函数组成,它们的数目可以有多个。 4、在C语言源程序中,是必须有一个函数名为main的函数。main()后的小括号()没有任何内容,它不可以省略。 5、C程序中的语句用分号结束,在一个程序行上可以有多个语句,一个C 语句能写在多个程序行上。 6、函数体是由一对大括号围起来语句序列组成。小括号是函数的标志。 二、C语言的组成元素 1、命令、函数和变量等是组成程序的基本对象,每一个程序对象都需要一个名字来标识,程序对象的名称就是标识符。 2、在C语言中,标识符分为用户标识符和系统标识符。 3、用户标识符是指在程序中由程序员为变量、函数、数组等程序对象自行命名的标识符。 4、系统标识符是指C语言编译系统内部预定义的用于表示命令数据内型的标识符,又称保留字符。 5、基本字符集 英文字母:a~z和A~Z。 阿拉伯数字:0~9。其他字符:()、[]、+、-、*、/、%、<、>、<=、>=、==、!=、!、&&、‖、++、--、+=、-=、*=、/=、%=。它们是由1~2个字符组成。用作C语言的运算符;还包括:空格、换行符,回车符,单双引号,大括号,逗号,分号,反斜线,它们在程序中起到分隔和定界作用。 6、标识符:是用于标识命令;变量、函数,数组,数据类型等程序对象名称的字符序列。 7、组成标识符的合法字符有:字母,数字,下划线,三种,数字不能作首字符。 三、执行C语言程序 1、单击“开始”——“程序”——“附件”——“命令提示符”。 2、按功能键<10>激活菜单,执行“File”——“NEW”(ALT+回车)全屏。 3、 初学C语言常用简单程序代码素数的筛选 #include main() { int x,s,t,d; scanf("%d",&x); s=x%60; t=(x/60)%60; d=(x/60)/60; printf("%d时%d分%d秒",d,t,s); } 三个数的交换 #include C语言程序设计(医院信息管理系统)附源代码 ————————————————————————————————作者:————————————————————————————————日期: 专业设计报告 课程名称: C 语言程序设计课题名称:医院信息管理系统 专业班别:12本计算机科学与技术二班 姓名: 学号: 指导教师: 设计日期:2012-5-25 教师评语: 等级 优良中及格差项目 专业设计目的 设计基本要求 算法分析 源程序代码 源程序代码测试 设计总结 成绩评定: 指导教师签名: 日期:2012 年月日 课程设计题目医院信息管理程序 作者姓名: 同组成员: 摘要利用结构体存储每个病人的信息和每种药品的信息,并使用链表存储全部病人的信息;能完成对医院内所有病人信息的注册、查询、删除和修改等操作,同时又能对药房内库存的药品进行查询;可以将链表中的病人信息保存在文件中,并且可以对文件中的病人信息进行读取与显示 1.专业设计目的 1、掌握链表的操作,包括链表节点的创建、释放还有链表的遍历 2、掌握对二进制文件的创建、增添等基本操作。 3、熟悉C语言函数的使用方法,学会模块化处理问题以及多个源文件的处理方式 2.设计基本要求( 1、使用结构体来存储病人的信息,结构体中包括病的id号码、姓名、病历以及消费信息,并用链表将所有病人信息整合。 2、用文件来存储链表的信息以便下次再使用该程序时载入病人信息 3、能够实现病人信息的注册、病人信息的查询、病人消费统计、保存链表信息、载入链表信息、查询库存等几项功能。 4、要求用四个源文件main.c、link.c、find.c、save_load.c 5、系统完成后应实现类似下面所示界面 以下代码亲自运行成功,可黏贴到vc中运行gets和puts函数 #include"stdio.h" void main() { char str[20]; gets(str);//输入字符串 puts(str);//输出字符串 } 整型、字符、字符串、一维数组的初始化、输入和输出 #include"stdio.h" #include"string.h" void main() { int i = 2; printf("%d\n请输入一个int型",i); int ii; scanf("%d",&ii); printf("%d\n",ii); //字符类型 char c = 'x'; printf("%c\n请输入一个char型",c); char cc; scanf("%c",&cc); //cc = getchar(); printf("%c\n",cc); //putchar(cc); //字符串型 char str[] = "xuxunxun"; printf("%s\n请输入一个字符串类型",str); char strr[100];//必须指定大小 //scanf("%s",strr);//字符数组名就代表了地址 gets(strr);//字符串输入函数 //printf("%s\n",strr); puts(strr); //一维数组 int a[5] = {1,2,3,4,5}; for(int j = 0;j < 5;j ++) printf("%d\n",a[j]); int b[3]; printf("请输入三个数字\n"); for(int k = 0;k < 3;k ++) { scanf("%d",&b[k]); } printf("输入三个数字是:\n"); for(k = 0;k < 3;k ++) printf("%d\n",b[k]); } //结构体 struct student { char name[9]; int score[3];//存放3门课成绩 }; student stu[2];//定义两个学生的数组 for(int i = 0;i < 2;i ++) { printf("请输入第%d个学生的信息:\n",i + 1); printf("姓名:"); scanf("%s",&stu[i].name); for(int j = 0;j < 3;j ++) { printf("成绩%d:",j + 1); scanf("%d",&stu[i].score[j]); } } 字符串输出 经典C语言源代码 1、(1)某年某月某日是星期几 #include case 2:printf("Tuesday\n"); break; case 3:printf("Wednesday\n"); break; case 4:printf("Thursday\n"); break; case 5:printf("Friday\n"); break; case 6:printf("Saturday\n"); break; case 0:printf("Sunday\n"); break; } } return 0; } 1、(2)某年某月某日是第几天(一维数组) #include "stdio.h" void main() { int i, flag, year, month, day, dayth; int month_day[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; printf("请输入年/月/日:\n"); scanf_s("%d/%d/%d", &year, &month, &day); dayth = day; flag = (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0); if (flag) month_day[2] = 29; C语言程序5-3 #include 5-6: #include 1》分解质因数的程序: #include 2》看你的星座的程序: #include 常用的C语言编程实例-实训01 1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?代码: #include "stdio.h" #include "conio.h" main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } getch(); } 2.输入某年某月某日,判断这一天是这一年的第几天? 代码: #include "stdio.h" #include "conio.h" main() { int day,month,year,sum,leap; printf("\nplease input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month) /*先计算某月以前月份的总天数*/ { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("data error");break; } 经典C语言程序50例(1-50) 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++)/*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; 1.有三个整数a,b,c ,由键盘输入,输出其中最大的数。 #include scanf("%d",&x); if(x<1) y=x; else if(x<10&&x>=1) y=2*x-11; else y=3*x-11; printf("%d\n",y); } 4.给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’ #include C语言程序源代码 C语言程序源代码 #include <c语言程序代码
C语言编程游戏代码
c语言程序代码
c语言基本代码
(完整word版)一些简单的C语言程序代码
一些比较简c语言程序源代码
C语言程序代码
C语言源程序
初学C语言常用简单程序代码
C语言程序设计(医院信息管理系统)附源代码
C语言简单程序代码
经典C语言源代码
C语言简单程序代码
几个简单的c语言源程序
C语言编程项目源代码
经典C语言程序50例(1-50)
c语言源程序段
C语言程序源代码
C程序代码大全