求这个题的c语言程序代码
估计你要的很详细,随便写了个简单的
VC++环境编译,TC中可能有的地方需要修改
-------------------------------------------
#include "stdio.h"
void main()
{
int j=3,y=3; //循环次数,根据队伍人数判断
printf("两个球队进行比赛,每队各三人,甲队用a,b,c表示,乙队用x,y,z表示,已知a不和x比,c不和x、z比,用c语言编写程序,求出两队的对阵名单
");
char J_team[]={'a','b','c'}; //甲队
char Y_team[]={'x','y','z'}; //乙队
for (int i=0;i<j;i++)
{
for (int j=0;j<y;j++)
{
bool ax,cx,cz;
ax=(J_team[i]=='a')&(Y_team[j]=='x'); //a和x比
cx=(J_team[i]=='c')&(Y_team[j]=='x'); //c和x比
cz=(J_team[i]=='c')&(Y_team[j]=='z'); //c和z比
if (ax|cx|cz) //判断
{}
else
{
printf("甲队 %c",J_team[i]);
printf("对阵");
printf("乙队 %c
",Y_team[j]);
}
}
}
}
#include
#include
#include
void Sort(char *q[],int n)
{
int i,j;
char *temp;
for(i = 0; i< n-1; i++)
for(j = i+1; j< n; j++)
{
if(strcmp(q[i],q[j]) > 0)
{
temp = q[i];
q[i] = q[j];
q[j] = temp;
}
}
}
int main()
{
char * p[3];
int i;
for(i = 0; i < 3; i++)
{
p[i]=(char*)malloc(100);//动态内存分配
scanf("%s",p[i]);//注意回车
}
Sort(p,3);
for(i = 0; i < 3; i++)
printf("%s
",p[i]);
return 0;
}
OK啦 有问题继续。。。
//【本程序功能可输入任意名学生的学号以及三门成绩并按总分排序输出学号以及平均成绩】
//接收6名学生的学号和三门成绩的输入。
//计算评论成绩然后一并存入数组中,再按照评论成绩从高到低排序后,输出学号和平均成绩。
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
int choose;/*用于接受用户的选择*/
typedef struct STUDENT
{
char studentNumber[10];/*学生学号*/
float markchinese;/*语文成绩*/
float markmath;/*数学成绩*/
float markenglish;
struct STUDENT *next;
}STUDENT;
STUDENT *headLink;/*链表表头指针*/
/*以下是函数声明*/
void ReadInfoFormFile(void);
void DesplayMenu(void);
void CreateHeadLink(void);
STUDENT *MallocNode(void);
void GetInformation(STUDENT *t);
void OutputInformation(void);
void DesplayOneNode(STUDENT *t);
void InsertOneNode(STUDENT *t);
void SaveLinkToFile(void);
void DesplayMarkSegment(void);
void CompositorByTotalMark(void);
/*主函数*/
void main()
{
CreateHeadLink();
ReadInfoFormFile();
DesplayMenu();
}
/************************************
函数功能:从文件中读学生信息到链表中
************************************/
void ReadInfoFormFile(void)
{
FILE *fp;
STUDENT *p;
fp=fopen("student.txt","r");
if(!fp)
{
printf("尚无学生的成绩记录。
");
return;
}
p=MallocNode();
while(fscanf(fp,"%s%f%f%f",p->studentNumber,&(p->markchinese),&(p->markmath),&(p->markenglish))>0)
{
InsertOneNode(p);
p=MallocNode();
}
fclose(fp);
}
/************************************
函数功能:显示菜单,根据用户的输入
完成相应的功能
************************************/
void DesplayMenu(void)
{
STUDENT *p;
printf("-------请选择相应功能------------
");
printf("| 1 输入学生学号以及成绩 |
");
printf("| 2 按总成绩排定名次 |
");
printf("| 3 退出 |
");
scanf("%d",&choose);/*取得用户的选择*/
switch(choose)
{
case 1:
p=MallocNode();/*先申请一个新结点*/
GetInformation(p);/*要求用户输入信息到新结点中*/
InsertOneNode(p);/*将新结点加到链表中*/
break;
case 2:
CompositorByTotalMark();/*按平均成绩排序*/
break;
case 3:
SaveLinkToFile();/*保存数据后再退出*/
free(headLink);
exit(1);
break;
default:
break;
}
DesplayMenu();/*递归调用*/
}
/************************************
函数功能:按总成绩排序
************************************/
void CompositorByTotalMark(void)
{
STUDENT exchange,*r,*p,*q;
r=headLink->next;
if(r==NULL)
{
printf("现在还没学生信息,请先输入学生信息
");
return;
}
while(r)/*两层while循环实现排序*/
{
p=r;
q=r->next;
while(q)
{
if((q->markchinese+q->markmath+q->markenglish )>(p->markchinese+p->markmath+p->markenglish ))
{
strcpy(exchange.studentNumber,q->studentNumber);/*先复制q结点信息到exchange*/
exchange.markchinese=q->markchinese;
exchange.markmath=q->markmath;
exchange.markenglish=q->markenglish;
strcpy(q->studentNumber,p->studentNumber);/*再复制p结点信息到q*/
q->markchinese=p->markchinese;
q->markmath=p->markmath;
q->markenglish=p->markenglish;
strcpy(p->studentNumber,exchange.studentNumber);/*最后复制exchange结点信息到p*/
p->markchinese=exchange.markchinese;
p->markmath=exchange.markmath;
p->markenglish=exchange.markenglish;
}
q=q->next;
}
r=r->next;
}
OutputInformation();
}
/************************************
函数功能:输出一个结点的信息
************************************/
void DesplayOneNode(STUDENT *t)
{
printf("%s",t->studentNumber);
printf("%.2f
",(t->markchinese+t->markmath+t->markenglish )/3);
}
/************************************
函数功能:建立链表表头
************************************/
void CreateHeadLink(void)
{
STUDENT *p;
p=(STUDENT*)malloc(sizeof(STUDENT));
headLink=p;
p->next=NULL;
}
/************************************
函数功能:保存链表数据到文件中
************************************/
void SaveLinkToFile(void)
{
STUDENT *p;
FILE *fp;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息
");
return;
}
fp=fopen("student.txt","w+");
if(!fp)
{
printf("尚无学生的成绩记录
");
return;
}
while(p)
{
fprintf(fp,"%s %f
",p->studentNumber,(p->markchinese+p->markmath+p->markenglish )/3);
p=p->next;
}
fclose(fp);
}
/************************************
函数功能:申请一个新结点,并将其初始化
************************************/
STUDENT *MallocNode(void)
{
STUDENT *p;
int i;
p=(STUDENT*)malloc(sizeof(STUDENT));
if(p==NULL)
return NULL;
for(i=0;i<10;i++)
p->studentNumber[i]='\0';
for(i=0;i<20;i++)
p->markchinese=0.0;
p->markmath=0.0;
p->markenglish =0.0;
p->next=NULL;
return p;
}
/************************************
函数功能:在链表的结尾处增加一个结点
************************************/
void InsertOneNode(STUDENT *t)
{
STUDENT *p;
p=headLink;
while(p->next)
{
p=p->next;
}
p->next=t;
}
/************************************
函数功能:显示所有学生的信息
************************************/
void OutputInformation(void)
{
STUDENT *p;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息
");
return;
}
printf("学号平均成绩
");
while(p)
{
DesplayOneNode(p);
p=p->next;
}
}
/************************************
函数功能:输入所有学生的信息
************************************/
void GetInformation(STUDENT *t)
{
printf("请输入学生学号:
");
scanf("%s",t->studentNumber);
printf("请输入语文成绩:
");
scanf("%f",&(t->markchinese));
printf("请输入数学成绩:
");
scanf("%f",&(t->markmath));
printf("请输入英语成绩:
");
scanf("%f",&(t->markenglish));
}
我是来做任务的~
111 56 78 99
222 56 77 90
333 76 58 98
444 76 85 93
555 67 95 45
666 56 45 89
学号 平均成绩
444 84.67
111 77.67
333 77.33
222 74.33
555 69.00
666 63.33
Press any key to continue
#include "stdio.h"
struct student
{
float stdinfo[5];
}st[6]={0};
main()
{
int i,j;
float tmp;
for (i=0;i<6;i++)
{
scanf("%f %f %f %f",&st[i].stdinfo[0],&st[i].stdinfo[1],&st[i].stdinfo[2],&st[i].stdinfo[3]);
st[i].stdinfo[4]=(float)((st[i].stdinfo[1]+st[i].stdinfo[2]+st[i].stdinfo[3])/3.0);
}
for (i=0;i<6-1;i++)
{
for (j=0;j<6-i-1;j++)
{
if (st[j].stdinfo[4]<st[j+1].stdinfo[4])
{
tmp=st[j].stdinfo[4];
st[j].stdinfo[4]=st[j+1].stdinfo[4];
st[j+1].stdinfo[4] = tmp;
tmp=st[j].stdinfo[0];
st[j].stdinfo[0]=st[j+1].stdinfo[0];
st[j+1].stdinfo[0] = tmp;
}
}
}
printf("学号\t\t平均成绩\n");
for (i=0;i<6;i++)
{
printf("%5.0f\t\t%.2f\n",st[i].stdinfo[0],st[i].stdinfo[4]);
}
}
C语言程序阅读题怎么做?
1.执行预处理命令 2.开始执行程序,从main()进入程序 3.声明结构体变量,把指针(*pd)和md变量设为⼀个可以使⽤data结构体的结构体变量,则指针(*pd)和md这个变量就包含了其data结构体中的所有元素 4.通过变量md寻找结构体中变量,为其赋值,然后赋值后结构体的地址给指针接收 5...
C语言程序题?
int n,i;printf("Enter n(int n>0)...\\nn=");if(scanf("%d",&n)!=1 || n<1){ printf("Input error, exit...\\n");return 0;} for(s=0,i=1;i<n;i++)s += (i&1) ? 1.0\/(i+i-1) : -1.0\/(i+i-1);printf("π ≈ %.10f\\n",4*s);return 0;} 题目没...
c语言程序题
x=y=1;z=x++,y++,++y;逗号表达式的优先级最低,所以第二行实际上相当于 (z=x++),y++,++y;这是一个逗号表达式,计算顺序从左到右。x++和y++都是后自增,意思就是说这一说执行完后才自增,++y是先自增,就是运行到这里先自增,所以从上面可以知道上面三个的顺序是 z=xy(这行之后才...
c语言程序设计题目
已赞过 已踩过< 你对这个回答的评价是? 评论 收起 其他类似问题 2008-04-15 《C语言程序设计》练习题 44 2020-01-02 C语言程序设计题目? 2013-04-13 C语言程序设计题目 2011-05-07 C语言程序设计试题 353 2019-07-01 c语言程序设计题目 2 2011-01-08 c语言程序设计习题!!10道 2012-04-13 ...
C语言题目 1.下面程序的运行结果是( )
其中有不少小的错误,作为程序它是不能运行的。include<stdio.h>int main( ){ int y=2,a=1;while(y--!=-1){ do{a *=y; a++;} while(y--); }printf("%d,%d",a,y);return 0;}运行后的输出是:1,-2 分析运行过程:y=2,a=1;判断,为真,y变为1 进入do循环:a=1*1=1;...
请问这个c语言程序哪里错了?题目:求华氏温度100对应的摄氏温度。计算公...
include<stdio.h> void main(){ int f;f=100;float c;scanf("%f",&c); \/\/这个地方的意思是让用户输入C的值,用不上的。你下面不是用F来表示C了么。把这句去掉就可以了。c=(5.0\/9)*(f-32);printf("%f",c);}
请问这个C语言程序阅读题是怎么分析得到结果的,谢谢
fun(5)=5+fun(4)fun(4)=4+fun(3)fun(3)=3+fun(2)fun(2)=2+fun(1)fun(1)=1 所以,fun(5)=5+4+3+2+1=15
几道C语言的函数程序补全题,求大佬解答
这样一来上面程序里面的for语句就好理解了,之所以用for是因为要算出次方(这个应该不用解释),一个数要乘的次方是它后面跟着的数字的个数,所以是“j = 0; j < len - 1”。然后把这些值加起来,就得到这个数字对应的十进制下的数值,也就完成了最终的转换。题主可以随便写些不同进制下的数字...
c语言程序题
第一题:外循环执行2次。 外循环每执行1次,内循环执行5次。 故内循环共执行10次。 内循环每执行1次,a的值加1,故a的值共加10,a的初始值为0,故最终a的值为10.第二题:外循环执行3次。 外循环每执行1次,内循环执行4次。 故内循环共执行12次。 内循环每执行1次,a的值加1,故a...
c语言 这个程序怎么解释
(unsigned long) p + 0x1 = 0x100001 p的值是一个地址值为0x100000,(unsigned long)p把p转换为一个无符号长整形数值,其加1之后,就是0x100001 (unsigned int*) p + 0x1 = 0x100004 p的值是一个地址值为0x100000,(unsigned int*) p把p转换为无符号长整形的指针,而c\/c++语言中,一...
仝陶余甘:[答案] int i; double p ; double r = 0.09; /*你可以在这里用scanf读取r的值*/ p = 1 + r ; for ( i=1; i { p = p * (1 + r ); }
郧县13484438550: 求C语言这道题目的代码!?
仝陶余甘: #include <stdio> int main() { char ciphertext; scanf("%c", &ciphertext); if (ciphertext >= 'a' && ciphertext <= 'z') { if (ciphertext <= 'w') { ciphertext += 3; } else { ciphertext -= 23; } } printf("%c", ciphertext); }
郧县13484438550: 求本道题C语言解法 - ?
仝陶余甘: #include int main(){ char strN[50][50]; int Num,i,j,k,flag,Len; scanf("%d%*c", for(i=0;i<Num;i++) scanf("%s%*c",strN[i]); for(i=0;i...
郧县13484438550: C语言求助!麻烦给我写下这个题目的代码·,谢谢···?
仝陶余甘: #include <stdio.h> int main() { int a[20]; int length = 0, i, j = 0; int del_num; while((scanf("%d", &a[length]), a[length++] != 0)); for(i = 0; i < length; i++) printf("%d ", a[i]); printf("\n输入要删除的数字:"); scanf("%d", &del_num); for(i = 0; i < ...
郧县13484438550: 用C语言编写下面题目的程序: - ?
仝陶余甘: 第一个 #include <stdio.h> int main() {char ch,str;int i,j,k;printf("输入字母\n");scanf("%c",&ch);//获取字符str='A';//从大写字母A开始for(i=0;i<=ch-'A';i++){for(k=0;k<ch-'A'-i;k++)printf("%c",' ');//打印空格for(j=0;j<2*i+1;j++){...
郧县13484438550: 如何用C语言来编程解决这个问题???需要详细代码、请教高手. - ?
仝陶余甘: 代码实现如下:有问题hi我哈~#include #define N 10void main(){ int n; //学科数 double a[N]; //存放各科的成绩 d...
郧县13484438550: 一道c语言的题目 急求代码 - ?
仝陶余甘: #include /*定义一个函数,用指向字符串的指针匹配子字符串*/ int match(char * str, char * str1, char * str2, char * a_str); int main() {/*定义两个字符数组,分别存储主字符串和子字符串*/ char mother[256],child[256]; /*定义一个字符串,用于替换...
郧县13484438550: C语言怎么编写这个题目? - ?
仝陶余甘: 你好! 完整的代码,你看看吧,有问题再问,满意请采纳#include#include int max=3;float subject[4][6]={0};main(){ float subject1[10]={0}; int i,j...
郧县13484438550: 我现在在学习C语言,遇到一些不会的题目想请教你们,想要一段约瑟夫问题的代码. - ?
仝陶余甘: #include<stdio.h>#include<stdlib.h> int main() { int a[1000]; int m; int n; int x=0; int count;//定义一个count,记录圆圈中剩余的猴子数 int i; scanf("%d",&m); scanf("%d",&n); count=m;//加这句 for(i=0;count>1;i++)//结束条件是猴子总数只剩...
郧县13484438550: 求解此题,c语言 - ?
仝陶余甘: 实现代码如下:#include<stdio.h> int main(){ char *mon[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"}; int n; scanf("%d",&n); if(n<=0 || n>12) printf("Illegal month\n"); else printf("%s\n",mon[n-1]); return 0; }