c语言程序设计代码,C语言程序设计 编写程序计算飞机票款.输入舱位代码和购票数量,输出总票款
c语言程序设计代码,C语言程序设计 编写程序计算飞机票款.输入舱位代码和购票数量,输出总票款详细介绍
本文目录一览: c语言程序设计新猜数游戏,刚接触c语言不太会,有没有人能帮忙解答一下?
好的,以下是一个C语言程序设计的新猜数游戏的示例代码:
```c
#include
#include
#include
int main()
{
int answer; // 预定的随机数
int guess; // 玩家猜测的数
int scoreA = 0, scoreB = 0, scoreC = 0; // 每位玩家的得分
int currentPlayer = 1; // 当前玩家编号,初始为1
int inputValid; // 标志变量,表示输入是否有效
// 生成预定的随机数
srand(time(NULL)); // 设置随机种子
answer = rand() % 100 + 1; // 生成1到100之间的随机数
printf("新猜数游戏开始了!\n");
while (1) // 循环进行游戏
{
printf("玩家%d,请输入你猜测的数字:", currentPlayer);
scanf("%d", &guess);
// 判断输入是否有效
if (guess < 1 || guess > 100)
{
printf("你猜测的数超过范围了,挨打并计一分!");
if (currentPlayer == 1)
scoreA++;
else if (currentPlayer == 2)
scoreB++;
else
scoreC++;
}
else if (guess != answer)
{
printf("猜错了,扣一分!请在");
if (guess < answer)
printf("%d至100之间猜数。\n", guess);
else
printf("1至%d之间猜数。\n", guess);
if (currentPlayer == 1)
scoreA++;
else if (currentPlayer == 2)
scoreB++;
else
scoreC++;
// 切换到下一个玩家
currentPlayer++;
if (currentPlayer > 3)
currentPlayer = 1;
}
else // 猜对了,游戏结束
{
printf("恭喜你猜对了!得10分!\n");
if (currentPlayer == 1)
scoreA += 10;
else if (currentPlayer == 2)
scoreB += 10;
else
scoreC += 10;
break; // 结束游戏循环
}
}
// 输出每位玩家的得分情况
printf("游戏结束!\n");
printf("玩家A得分:%d分\n", scoreA);
printf("玩家B得分:%d分\n", scoreB);
printf("玩家C得分:%d分\n", scoreC);
return 0;
}
```
以上代码中,通过rand()函数生成1到100之间的随机数,然后进入游戏循环。在循环中,程序提示当前玩家输入自己猜测的数字,并根据输入进行相应处理,包括判断输入是否有效、扣除相应的分数、输出下一步应该猜测的范围等。如果某个玩家猜中了答案,则游戏结束,输出各位玩家的得分情况。
请注意,在判断输入是否有效时,可以使用标志变量或者函数返回值来实现。在本例中,我们选择使用标志变量`inputValid`来表示输入是否有效,取值为1表示有效,为0表示无效。
c语言代码有哪些?
如下:
1、乘法表。用C语言输出9*9乘法口诀。共9行9列,i控制行,j控制列。
2、编写函数countpi,利用公式计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。
3、反向输出。完善程序,实现将输入的字符串反序输出,如输入windows 输出swodniw。
4、替换输出:编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中。
5、解决排序问题:写一个void sort(int *x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中。
C语言语言特点
简洁的语言:C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。
具有结构化的控制语句:C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if...else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。
c语言程序设计--对称数
1、首先打开电脑,然后在电脑中找到并打开Dev-c++软件,编写代码的整体框架。
2、然后输入要查找的范围100--999。
3、输入查找范围之后,接下来可以在for之前补充定义三个变量。
4、然后取出这个数的各个位数。
5、接下来开始编写if判断语句,就完成了。
C语言程序设计
#include
void main()
{
char str1[80]="nice to meet you!";
char str2[80];
int i=0,j=0;
printf("str1=");
puts(str1);
while(str1[i]!=0)
{
if(________)
str2[j++]=str1[i];
________;
}
str2[j]='\0';
printf("str2=");
puts(str2);
}
c语言题求解程序设计
第一处空填:k = sqrt(m);
第二处空填:if (m % i == 0) break;
第三处空填:sushu(m);
完整代码和运行结果如下:
可见成功输出了100~200内的所有素数,望采纳~
c语言编程代码
代码:#includeint main(){printf("Hello World.\n");return 0;}
扩展资料:代码解析:1.其中第一行的#include ,这行代码是编译预处理指令,用来提供输入输出函数的声明和宏的定义,全局量的定义这些信息。stdio.h是系统提供的一个文件名,stdio是为standard input & output的缩写,意为标准输入输出,文件后缀.h的意思是头文件(header file),因为这些文件都是放在程序各文件模块的开头的。总的来说,输入输出函数的相关信息已事先放在stdio.h文件中,然后,要用#include指令把这些信息调入供使用。2.void main(){},main是主函数的函数名,表示这是一个主函数,每一个C源程序都必须有且只能有一个主函数。3.函数调用语句,即调用printf("Hello World \n");语句 ,printf函数的功能是把要输出的内容送到显示器去显示,即打印输出Hello World到windows 控制台下,其中\n为转义字符,具有转行的功能。4.printf函数是一个由系统定义的标准函数,可在程序中直接调用。
例如:输入某年某月某日,判断这一天是这一年的第几天。
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2.程序源代码:
复制代码 代码如下:
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;
defaultrintf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum); }
#include "stdafx.h" //这是 VS 预编译头。其他系统删除。
#include
#include
//使用 system("pause"); 时需要。
//MS 否决了 scanf 等函数,加上下句,任然可用。其他系统删除。
#pragma warning(disable:4996)
// VS 标准主函数声明,其他系统请根据系统更改。
int _tmain(int argc, _TCHAR* argv[])
{
char ch[32];
int i, k, t;
printf("请输入手机号:");
while (1)
{
scanf("%s", ch);
i = 0; k = 0;
while (ch[i] != 0)
{
if (ch[i] < '0' || ch[i] > '9')
{
printf("手机号码不能含有非数字字符,请重新输入:");
k = 1;
break;
}
i++;
}
if (k)
continue;
if (i < 11)
{
printf("手机号码小于 11 位,请重新输入:");
continue;
}
k = 1;
t = (ch[0] - '0') * 100 + (ch[1] - '0') * 10 + (ch[2] - '0');
switch (t)
{
case 134: case 135: case 136: case 137: case 138: case 139: case 147: case 150: case 151: case 152: case 157: case 158: case 159: case 182: case 187: case 188:
printf("你用的是移动手机");
break;
case 130: case 131: case 132: case 155: case 156: case 185: case 186:
printf("你用的是联通手机");
break;
case 133: case 153: case 180: case 189:
printf("你用的是电信手机");
break;
default:
printf("没有这样的号码,请重新输入:");
k = 0;
break;
}
if (k)
break;
else
continue;
}
printf("\n\n");
system("pause"); //防止窗口一闪而过
return 0;
}
我先说思路,你之后再看下面我写的代码,效果可能比较好。
-------------思路------------------------
若ni是偶数,则ni+1=ni/2;若ni是奇数,则ni+1=3ni+1;若ni=1,则数列结束。
这个用个函数判断,比如定义个contrast(...),再在函数内用if(){}else{}做判断。
考虑到你要用void hailstones(int x[],int n0,int *maxp,int *minp)
那么就可以在void hailstones(int x[],int n0,int *maxp,int *minp)内部搞一个函数嵌套,
把contrast(...)内嵌到void hailstones(int x[],int n0,int *maxp,int *minp)中,
而x[]数组,则为了方便,你可以在contrast()的形参表中放一个int [],
即contrast(int x[],...).
又由于要键盘输入数据值n0,则可以用contrast(int a[],int n0)
于是函数建立完毕,为:contrast(int x[],int n0);【需要注意的是函数接受中要接收的是数组名】
----------------------代码如下:----------------------------------------
#include
#include
#include
int contrast(int a[],int n0);
void hailstones(int x[],int n0,int *maxp,int *minp);
#define Max 100
int main()
{
int n0;
int a[Max],*Maxp,*Minp;
printf("请输入n0的值:");
scanf("%d",&n0);
printf("\n--------\n结果为:\n--------\n");
hailstones(a,n0,Maxp,Minp);
return 0;
}
int contrast(int x[],int n0)//计算产生序列
{
int i;//i是因为i专门做数组的下标
x[0]=n0;
for(i=0;x[i]!=1;i++)
{
if(x[i]%2==0)
x[i+1]=x[i]/2;
if(x[i]%2==1)
x[i+1]=3*x[i]+1;
}
x[i]=1;
return (i+1);//之所以要加1(i+1),是因为n0也是一个数
}
void hailstones(int x[],int n0,int *maxp,int *minp)
{
int i; //i用来计算x[]的下标,也就是知道产生序列数量
int Maxcount=0,Mincount=0,j=0;/*用作循环,和i进行比较,直到j=i为止,把所有产生序列输出*/
maxp=&Maxcount,minp=&Mincount;
i=contrast(x,n0);//计算产生序列的数量
while(j!=i)
{
if(n0>x[j])
Mincount++;
if(n0
<x[j])
Maxcount++;
j++;
}
printf("产生序列为:\n");
j=0;
for(j=0;j<=i-1;j++) /*之所以要减1(i-1),是因为虽然有i个数,但下标从0开始[0 ~ i-1]之和为i*/
printf(" x[%d]=%d ",j,x[j]);
printf("\n");
printf("Max=%lu,Min=%lu\n",*maxp,*minp);
}
值得注意的是,我这个代码有一个问题,就是在main()函数里定义指针时没有给指针赋值,于是编译器出现警告:
warning C4700: local variable 'Minp' used without having been initialized
warning C4700: local variable 'Maxp' used without having been initialized
但实际上这个问题并没有对代码本身产生任何影响,只不过作为编译器,在编译时机械的把一切没有使用的变量、一切没有赋值的指针都看成有风险的,所以会警告,【但运行以及结果照常】,所以大可不必担心这个代码有误,你完全可以忽略这个警告,因为它真的没有任何问题。
#include
/* 1 12112321 121 1*/int main() { int i, j, n = 0; printf("输入一个正整数(1~9): "); scanf("%d", &n); if (n < 0 || n > 9) { // 只处理 1 ~ 9 的整数(两位数以上的打不出菱形效果) return 0; } // 打印菱形上半部分(包括中线) for (i = 1; i <= n; i++) { // 打印一行 // 1. 打印行前面的空格数 for (j = 1; j <= n - i; j++) { printf(" "); } // 2. 打印升序的数: 123... for (j = 1; j <= i; j++) { printf("%d", j); } // 3. 打印降序的数: ...21 for (j = i - 1; j >= 1; j--) { printf("%d", j); } // 4. 换行 printf("\n"); } // 打印菱形下半部分 for (i = n - 1; i >= 1; i--) { // 打印一行 // 1. 打印行前面的空格数 for (j = 1; j <= n - i; j++) { printf(" "); } // 2. 打印升序的数: 123... for (j = 1; j <= i; j++) { printf("%d", j); } // 3. 打印降序的数: ...21 for (j = i - 1; j >= 1; j--) { printf("%d", j); } // 4. 换行 printf("\n"); } return 0;}
注释详细,条理清晰!
两种方法我写在一起,可以独立拆开。
#include
void finda1(char a[3][10]);
void finda2(char a[3][10]);
void show(char (*p)[10]);
int main()
{
char a[3][10]={{"gehajl"},{"788a987a7"},{"ccabbbabbb"}};
printf("原数组内容:\n");
show(a);
printf("\n1、用数组指针的方法(函数finda1):\n");
finda1(a);
printf("执行后:\n");
show(a);
printf("\n---------------------\n");
char b[3][10]={{"gehajl"},{"788a987a7"},{"ccabbbabbb"}};
printf("原数组内容:\n");
show(a);
printf("\n2、用指针数组的方法(函数finda2):\n");
finda2(b);
printf("执行后:\n");
show(b);
return 0;
}
void finda1(char a[3][10])
{
int i,j;
char (*p)[10]=a;
for(i=0;i<3;i++)
for(j=0;j<10;j++)
if(p[i][j]=='a')
printf("发现:第%d行第%d个元素是‘a’,已替换\n",i+1,j+1),p[i][j]='1';
}
void finda2(char a[3][10])
{
int i,j;
char *p[3]={&a[0][0],&a[1][0],&a[2][0]};
for(i=0;i<3;i++)
for(j=0;j<10;j++)
if(p[i][j]=='a')
printf("发现:第%d行第%d个元素是‘a’,已替换\n",i+1,j+1),p[i][j]='1';
}
void show(char (*p)[10])
{
int i,j;
for(i=0;i<3;i++,printf("\n"))
for(j=0;j<10;j++)
printf("%c ",p[i][j]);
}
</x[j])
C语言程序设计 编写程序计算飞机票款.输入舱位代码和购票数量,输出总票款
#include
int main (void){ int n; float f,c,y,i; char g; printf ("请输入F舱、C舱和Y舱的公布价;\n"); scanf ("%f %f %f",&f,&c,&y); getchar (); printf ("请输入仓位代码和购票数量;\n"); scanf ("%c %d",&g,&n); switch (g) { case 'B':i=y*0.9*n;break; case 'H':i=y*0.85*n;break; case 'K':i=y*0.8*n;break; case 'L':i=y*0.75*n;break; case 'M':i=y*0.7*n;break; case 'N':i=y*0.65*n;break; case 'Q':i=y*0.6*n;break; case 'T':i=y*0.55*n;break; case 'X':i=y*0.5*n;break; } printf ("%.2f\n",i); }
c语言程序大神帮忙设计一下?
这种需求建议去百度文库去搜索。职工档案管理系统--设计与实现
按照题目要求:
1、实现文件写入功能,一次写入一个职工信息。
2、实现查询功能(包含4种条件查询)。
3、实现信息删除和修改并写入文件。
根据题意,数据用结构数组存储,且职工编号唯一性,因此单独两个函数计算信息长度和编号。
除条件查询函数和读取文件的函数,不会自行free释放内存。如你写代码调用,注意自行写free语句释放。
下面是代码:
#include
#include
#include
#include
#include
#define PATH "C:\\worker.data"
typedef struct worker//职员
{
int id;
char name[20];
int sex;//0:女。1:男
int byy;
int bmm;
int bdd;
}WR;
int write2File(char path[]);//写入文件,成功返回1,失败返回-1
int getLen(char path[]);//重新计算信息长度,成功返回1,失败返回-1
int getMaxId(char path[]);//获取最大的id,避免ID重复,成功返回1,失败返回-1
WR *readFormFile(char path[]);//读取文件内容到结构体数组,成功返回数组,失败返回NULL
void showWRS();//打印输出文件所有内容
WR *selectBy(WR *wrs,int n);//根据条件查询,查询成功返回查到的第一个节点(对于唯一的编号而言是精准查询),失败返回NULL。
//注意:该函数不会自动释放wrs内存,单独调用后需单独释放。单独调用n传0,在修改模块中调用n传1
int init();//初始化参数
int updateWr();//更新,成功返回1,失败返回-1
int showMenu();//菜单
int len=0;
int id=0;
int main()
{
init();
if(showMenu()==-1) return 1;
return 0;
}
int showMenu()
{
int n;
WR *wrs=NULL;;
while(1)
{
n=0;
printf("【职工档案管理系统】\n1、输入一个职工信息\n2、查询所有职工信息\n3、条件查询职工信息\n4、修改删除职工信息\n");
while(n<1 || n>4) scanf("%d",&n);
switch(n)
{
case 1:if(write2File(PATH)==-1) return -1; break;
case 2:showWRS(); break;
case 3:
wrs=readFormFile(PATH);
selectBy(wrs,0);
free(wrs);
break;
case 4:if(updateWr()==-1) return -1;break;
}
fflush(stdin);
printf("按任意键继续。。。。。"),getch();
system("cls");
}
}
int init()
{
if(getLen(PATH)!=-1 && getMaxId(PATH)!=-1) return 1;
return -1;
}
int updateWr()
{
int i,del=-1;
WR *wr=NULL,*wrs=NULL;
FILE *fp=NULL;
wrs=readFormFile(PATH);
if(!wrs) return -1;
wr=selectBy(wrs,1);
printf("请输入操作(1、删除,2、修改):");
while(del!=2 && del!=1)scanf("%d",&del);
if(del==2)
{
printf("请输入修改后职工信息:\n");
printf("请输入职工姓名:"),scanf("%s",wr->name);
printf("请选择职工性别(0:女。1:男):"),scanf("%d",&wr->sex);
printf("请输入职工生日(年月日用空格分隔):"),scanf("%d%d%d",&wr->byy,&wr->bmm,&wr->bdd);
}
if(remove(PATH)==-1) return -1;
if(!(fp=fopen(PATH,"w"))) return -1;
for(i=0;i
<len;i++)
if(del==2 ||(del==1 && wr!=&wrs[i]))
fprintf(fp,"%d %s %d %d %d %d%s",wrs[i].id,wrs[i].name,wrs[i].sex,wrs[i].byy,wrs[i].bmm,wrs[i].bdd,"\n");
printf("更新成功!\n");
fclose(fp);
free(wrs);
return 1;
}
WR *selectBy(WR *wrs,int n)
{
int i;
WR swr,*sp=NULL;
if(!wrs) return NULL;
while(n<1 || n>4)printf("请输入筛选条件(1、编号,2、姓名,3、性别,4、出生日期):"),scanf("%d",&n);
switch(n)
{
case 1:printf("请输入要查找的编号:"),scanf("%d",&swr.id);break;
case 2:printf("请输入要查找的姓名:"),scanf("%s",swr.name);break;
case 3:printf("请输入要查找的性别(1、男,0、女):"),scanf("%d",&swr.sex);break;
case 4:printf("请输入职工出生日期(年月日用空格分隔):"),scanf("%d%d%d",&swr.byy,&swr.bmm,&swr.bdd);break;
}
printf("%8s %8s %8s %10s\n","职工编号","职工姓名","职工性别","职工年龄");
for(i=0;i
<len;i++)
if((n==1 && wrs[i].id==swr.id) ||(n==2 && strcmp(wrs[i].name,swr.name)==0) ||(n==3 && wrs[i].sex==swr.sex) ||(n==4 && wrs[i].byy==swr.byy && wrs[i].bmm==swr.bmm && wrs[i].bdd==swr.bdd))
{
if(sp==NULL) sp=&wrs[i];
printf("%8d %8s %8s %04d-%02d-%02d\n",wrs[i].id,wrs[i].name,wrs[i].sex?"男":"女",wrs[i].byy,wrs[i].bmm,wrs[i].bdd);
}
return sp;
}
void showWRS()
{
int i;
WR *wrs=NULL;
wrs=readFormFile(PATH);
if(wrs)
{
printf("%8s %8s %8s %10s\n","职工编号","职工姓名","职工性别","职工年龄");
for(i=0;i
<len;i++)
printf("%8d %8s %8s %04d-%02d-%02d\n",wrs[i].id,wrs[i].name,wrs[i].sex?"男":"女",wrs[i].byy,wrs[i].bmm,wrs[i].bdd);
}
free(wrs);
}
int getLen(char path[])
{
FILE *fp=NULL;
WR wr;
if(!(fp=fopen(path,"r"))) return -1;
len=0;
while((fscanf(fp,"%d%s%d%d%d%d",&wr.id,wr.name,&wr.sex,&wr.byy,&wr.bmm,&wr.bdd))!=-1)
len++;
fclose(fp);
return 1;
}
int getMaxId(char path[])
{
FILE *fp=NULL;
WR wr;
if(!(fp=fopen(path,"r"))) return -1;
len=0;
while((fscanf(fp,"%d%s%d%d%d%d",&wr.id,wr.name,&wr.sex,&wr.byy,&wr.bmm,&wr.bdd))!=-1)
if(id
<wr.id) id="wr.id;
fclose(fp);
return 1;
}
WR *readFormFile(char path[])
{
int i;
FILE *fp=NULL;
WR *wrs=NULL;
getLen(path);
if(!(fp=fopen(path,"r"))) return NULL;
if(len==0) return NULL;
wrs=(WR *)malloc(sizeof(WR)*len);
if(!wrs) return NULL;
i=0;
while((fscanf(fp,"%d%s%d%d%d%d",&wrs[i].id,wrs[i].name,&wrs[i].sex,&wrs[i].byy,&wrs[i].bmm,&wrs[i].bdd))!=-1)i++;
fclose(fp);
return wrs;
}
int write2File(char path[])
{
FILE *fp=NULL;
WR wr;
if(!(fp=fopen(path,"a"))) return -1;
wr.id=id++;
printf("-----------------------------\n");
printf("请输入职工姓名:"),scanf("%s",wr.name);
printf("请选择职工性别(0:女。1:男):"),scanf("%d",&wr.sex);
printf("请输入职工生日(年月日用空格分隔):"),scanf("%d%d%d",&wr.byy,&wr.bmm,&wr.bdd);
printf("-----------------------------\n\n");
fprintf(fp,"%d %s %d %d %d %d%s",wr.id,wr.name,wr.sex,wr.byy,wr.bmm,wr.bdd,"\n");
fclose(fp);
len++;
return len;
}
</len;i++)
</len;i++)
</len;i++)
计算机初级C语言程序设计、、、就是设计一个简单程序的源代码
#include
void main ( ){ double a,b,c,s,v; printf("input a,b,c:");//要有引号,不要回车 scanf("%lf%lf%lf",&a,&b,&c);//double对应%lf long float s=a*b; v=a*b*c; printf("%f %f %f\n",a,b,c);//浮点数输出用%f printf("s=%f,v=%f\n",s, v); //}