星空5G 导航

求C语言高手帮忙编个程序-

2024-08-22编辑:本站
高手帮忙编个C语言程序~

随便拷个给你好了~冒泡排序~就是从头到尾两个两个比较一下再交换位置,比较到都对了就好了~你滴明白~

#include
int main()
{
int n,i,j,t;
printf("input n
");
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++){
printf("input a[%d]
",i+1);
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(a[i]>a[j]){
t=a[i],a[i]=a[j],a[j]=t;
}
}
}
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("
");
scanf("%d",&n);
return 0;
}

#include
#include

unsigned char weizhi[10000];
int currentStep = 0;
unsigned char zuoanlang = 32;
unsigned char zuoanyang = 16;
unsigned char zuoanbaicai = 8;
unsigned char youanlang = 4;
unsigned char youanyang = 2;
unsigned char youanbaicai = 1;
unsigned char moveStep[1000]="";
int p=0;

int check1(unsigned char num);
int check2(unsigned char num);
int move();

int main()
{
printf("一个人和一只狼还有一只羊再加上一棵白菜的复杂故事!
");
unsigned char a = 0;
weizhi[0] = a | zuoanlang | zuoanyang | zuoanbaicai;
if (move() == 1)
{
int i;
printf("成功了
");
for(i=--p;i>=0;i--)
{
switch(moveStep[i])
{
case 1:
printf("第%d步:把狼带过去
",p-i+1);
break;
case 2:
printf("第%d步:把羊带过去
",p-i+1);
break;
case 3:
printf("第%d步:把白菜带过去
",p-i+1);
break;
case 4:
printf("第%d步:把狼带回来
",p-i+1);
break;
case 5:
printf("第%d步:把羊带回来
",p-i+1);
break;
case 6:
printf("第%d步:把白菜带回来
",p-i+1);
break;
default:
break;
}
}
printf("打完收工
");
}
else
printf("一万步没送过去,不干了");

while(1);

}
int move()
{
unsigned char currentWeizhi = weizhi[currentStep];
unsigned char a = 0;
if (currentWeizhi == (a | youanlang|youanyang | youanbaicai)) return 1;
if (currentStep >= 10000) return 0;
if ((currentWeizhi & zuoanlang) !=0)
{
if (check1(currentWeizhi - zuoanlang))
if (check2(currentWeizhi - zuoanlang + youanlang))
{
weizhi[++currentStep] = (currentWeizhi - zuoanlang + youanlang);
if (move())
{
moveStep[p++]=1;
//strMoveStep = "把狼带过去 "+ //strMoveStep;
return 1;
}
}
}
if ((currentWeizhi & zuoanyang) > 0)
{
if (check1(currentWeizhi - zuoanyang))
if (check2(currentWeizhi - zuoanyang + youanyang))
{
weizhi[++currentStep] = (currentWeizhi - zuoanyang + youanyang);
if (move())
{
moveStep[p++]=2;
//strMoveStep = "把羊带过去 "+ //strMoveStep;
return 1;
}
}
}
if ((currentWeizhi & zuoanbaicai) > 0)
{
if (check1(currentWeizhi - zuoanbaicai))
if (check2(currentWeizhi - zuoanbaicai + youanbaicai))
{
weizhi[++currentStep] = (currentWeizhi - zuoanbaicai + youanbaicai);
if (move())
{
moveStep[p++]=3;
//strMoveStep = "把白菜带过去 "+ //strMoveStep;
return 1;
}
}
}
if ((currentWeizhi & youanlang) > 0)
{
if (check1(currentWeizhi - youanlang))
if (check2(currentWeizhi - youanlang + zuoanlang))
{
weizhi[++currentStep] = (currentWeizhi - youanlang + zuoanlang);
if (move())
{
moveStep[p++]=4;
//strMoveStep = "把狼带回来 "+ //strMoveStep;
return 1;
}
}
}
if ((currentWeizhi & youanyang) > 0)
{
if (check1(currentWeizhi - youanyang))
if (check2(currentWeizhi - youanyang + zuoanyang))
{
weizhi[++currentStep] = (currentWeizhi - youanyang + zuoanyang);
if (move())
{
moveStep[p++]=5;
//strMoveStep = "把羊带回来 "+ //strMoveStep;
return 1;
}
}
}
if ((currentWeizhi & youanbaicai) > 0)
{
if (check1(currentWeizhi - youanbaicai))
if (check2(currentWeizhi - youanbaicai + zuoanbaicai))
{
weizhi[++currentStep] = (currentWeizhi - youanbaicai + zuoanbaicai);
if (move())
{
moveStep[p++]=6;
//strMoveStep = "把白菜带回来 " + //strMoveStep;
return 1;
}
}
}
return 0;

}



int check1(unsigned char num)
{

if ((num & zuoanlang) != 0 && (num & zuoanyang) != 0) return 0;
if ((num & zuoanyang) != 0 && (num & zuoanbaicai) != 0) return 0;
if ((num & youanlang) != 0 && (num & youanyang) !=0) return 0;
if ((num & youanyang) != 0 && (num & youanbaicai) != 0) return 0;
return 1;
}
int check2(unsigned char num)
{
int i;
for (i = 0; i <= currentStep; i++)
if (num == weizhi[i]) return 0;
return 1;
}
二十一世纪谁最无聊?我!

#include <cstdlib>
#include <iostream>

using namespace std;
struct student
{
char name [20];
int score [5];
int sum ;
float average ;
}a [30];
int main(int argc, char *argv[])
{
int i,k,j;
char ch,filename [20];
printf("input the file name \n");
gets(filename);

for(i=0;i<10;i++)
{
printf("input student name \n");
scanf("%s",a[i].name );
printf("input the score \n");

for(k=0;k<3;k++)
scanf("%d",&a[i].score[k]);

}
for(i=0;i<10;i++)
{ for(k=0;k<3;k++)
a[i].sum+=a[i].score[k];
a[i].average=a[i].sum/3; }
for(i=0;i<10;i++)
{ printf("%s \n",a [i].name);
printf("score:");
for(k=0;k<3;k++)
printf("%d ",a[i].score[k]);
printf("\n");
printf("%d \n",a[i].sum);
printf("%f \n",a[i].average);
}
FILE *fp;
if( (fp = fopen (filename,"a") ) == NULL)
{
printf("the file can nor open ");
exit (0);
}

fp = fopen (filename,"a");
for(i=0;i<10;i++)
{

fprintf(fp,"%s \n",a [i].name );
for(k=0;k<3;k++)
fprintf(fp,"%d \n",a [i].score [k]);

fprintf(fp,"%d \n%f \n",a [i].sum,a [i].average);

}
fclose(fp);
system("PAUSE");
return EXIT_SUCCESS;
}

我们也是这个题目 只是有点小变化 但是基本符合你的要求(没写学号还有排名序号) 你看看吧

你参考一下吧

#include <stdio.h>
#include <string.h>

#define STU_NUM 10//学生数
#define SCORE_NUM 3//每个学生的科目数

typedef struct /*定义结构体数组*/
{
char num[20]; /*学号*/
char name[20]; /*姓名*/
float score[SCORE_NUM]; /*成绩*/
float total;//总分
float average;//平均分
} Student;

Student stu[STU_NUM];

//输入学生信息
void input()
{
int i,j;

printf("请输入%d个学生的信息:\n",STU_NUM);
for(i=0;i<STU_NUM;i++)
{
printf("学号:");
scanf("%s",stu[i].num);
printf("姓名:");
scanf("%s",stu[i].name);
for(j=0;j<SCORE_NUM;j++)
{
printf("科目%d的成绩:",j+1);
scanf("%f",&stu[i].score[j]);
}
}
}

//输出学生信息
void output()
{
int i,j;

printf("学生的信息如下:\n");
for(i=0;i<STU_NUM;i++)
{
printf("学号:%s\n",stu[i].num);
printf("姓名:%s\n",stu[i].name);
for(j=0;j<SCORE_NUM;j++)
{
printf("科目%d的成绩:%f\n",j+1,stu[i].score[j]);
}
printf("总分:%f\n",stu[i].total);
printf("平均分:%f\n",stu[i].average);
}
}

//计算总分和平均分
void process()
{
int i,j;

for(i=0;i<STU_NUM;i++)
{
stu[i].total=0;
for(j=0;j<SCORE_NUM;j++)
{
stu[i].total+=stu[i].score[j];
}
stu[i].average=stu[i].total/SCORE_NUM;
}
}

//排序并输出
void sort()
{
Student tStu;
int i,j;

for(i=0;i<STU_NUM;i++)
{
for(j=STU_NUM-1;j>i;j--)
{
if(stu[j].total>stu[j-1].total)
{
tStu=stu[j];
stu[j]=stu[i];
stu[i]=tStu;
}
}
}
}

void main()
{
input();
process();
sort();
output();
}

#include<stdio.h>
#include<string.h>
int count=0;
void p1(struct student temp1[]);//luru
void p2(struct student temp2[]);//xianshi
void p3(struct student temp3[],int);//paixu
void p4(struct student temp4[]);//charu
void p5(struct student temp4[]);//shangchu

struct student
{
int id;
char name[15];
float score[3];
float avg;
};
struct student stu[50];

void main()
{
int a;

do{

printf("0、退出。\n1、录入信息。\n2、显示信息。\n3、按平均成绩排序\n4、插入信息。\n5、删除信息。\n请输选择功能\n");
scanf("%d",&a);
if(a==0)
break;
else

switch(a)
{
case 1:p1(stu);break;
case 2:p2(stu);break;
case 3:p3(stu,count);break;
case 4:p4(stu);p3(stu,count);break;
case 5:p5(stu);break;
}
}while(1);
}

void p1(struct student temp1[])//录入
{
char ch;
ch='y';

do
{
printf("请输入学号");
scanf("%d",&temp1[count].id);

printf("请输入姓名:");
fflush(stdin);
gets(temp1[count].name);
//scanf("%s",temp1[count].name);
printf("请输入分数:\n");
for(int i=0,float sum;i<3;i++)//每次循环初始化为0
{

printf("分数%d ",i+1);
scanf("%f",&temp1[count].score[i]);
sum=sum+temp1[count].score[i];
}
temp1[count].avg=sum/3;
count++;
printf("是否要继续(y/n)?");
fflush(stdin);
ch=getchar();
}while(ch=='y'||ch=='Y');

}

void p2(struct student temp2[])//显示
{

printf("学员信息为:\n");
printf("学号\t姓名\t平均成绩\n");
for(int i=0;i<count;i++)
printf("%d\t%s\t%.2f\n",temp2[i].id,temp2[i].name,temp2[i].avg);
}

void p3(struct student temp3[],int cou)//排序
{
struct student c[30];//结构参数

printf("排序后为:\n");
for(int i=0;i<cou;i++)
{
for(int j=0;j<cou;j++)
if(temp3[j].avg<temp3[j-1].avg)
{
c[j]=temp3[j];
temp3[j]=temp3[j-1];
temp3[j-1]=c[j];
}
}
printf("学号:\t姓名:\t平均成绩\n");
for(int m=0;m<cou;m++)
printf("%d\t%s\t%f\n",temp3[m].id,temp3[m].name,temp3[m].avg);
}

void p4(struct student temp4[])//charu
{

printf("请输入要插入的学员信息:\n");

printf("请输入学号\n");
scanf("%d",&temp4[count].id);
printf("请输入姓名:\n");
scanf("%s",temp4[count].name);
printf("请输入分数:\n");
for(int i=0,float sum=0;i<3;i++)////每次循环初始化为0
{
printf("分数%d ",i+1);
scanf("%f",&temp4[count].score[i]);
sum=sum+temp4[count].score[i];
}
temp4[count].avg=sum/3;
count++;

}

void p5(struct student temp5[])
{
int num,j;
printf("请输入要删除的学员学号:\n");
scanf("%d",&num);
for(int i=0;i<count;i++)
{
if(num==temp5[i].id )

break;

}
for(j=i;j<count-1;j++)
temp5[j]=temp5[j+1];
count--;
}

看看吧

  • 请C语言高手帮忙编写两个稀疏矩阵相加的程序,急!!!
  • 答:这是c++版本的 如果用tc要去掉#include <malloc.h> 将中文提示换成英文的 include <stdio.h> include <conio.h> include <malloc.h> include <math.h> define MAXSIZE 1000 typedef struct { int x,y;int value;}element;typedef struct { element data[MAXSIZE+1];int m,n,length;}tip;t...

  • c语言问题,求高手编写一个程序 编写程序: (1)求一个字符串S1的长度...
  • 答:int findch(char *s, char c) { int i,pos = 1;for(i = 0; s[i]; ++i) { if(s[i] == c) return pos;pos++;} return -1;} int strcmp(char *s, char *t) { int i,value;for(i = 0; s[i] && t[i]; ++i) { value = s[i] - t[i];if(value != 0) ...

  • 各位C语言高手们,我急求个程序
  • 答:if (yxj[i]==0)//先算优先级为0,然后是1,以此类推,算完一个运算符,则标识起来,然后把运算符两边的数字都变为结果 { num[i]=yunsuan(num[i],oper[i+1][3],num[i+1]);num[i+1]=num[i];flag[i]=1;for (int j=0;j<4;j++){ if (yxj[j]==1){ num[j]=yunsuan(...

  • 请高手帮忙编写道C语言程序
  • 答:include <stdio.h> void main(){ int bigletter=0,space=0,other=0;char c;printf("输入一串字符,长度不超过80个:\n");c=getchar();while(c!='\n'){if(c==' ')space++;else if(c>='A'&&c<='Z')bigletter++;else other++;c=getchar();} printf("bigletter=%d,space=%d,...

  • 求C语言高手帮我写程序
  • 答:printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);printf("\n输入学生编号:");scanf("%d",&stu[i].no);fflush(stdin);printf("\n输入学员姓名:");fflush(stdin);gets(stu[i].name);printf("\n输入学员性别:");fflush(stdin);gets(stu[i].sex);printf("\n输入...

  • 哪位高手能帮我编以下c语言的程序
  • 答:7、编制一个程序,将一个ASCII文件的内容复制到一个新文件中,且在复制时用小写字母代替大写字母,并计算出被转换字符的个数。8、写一个程序以比较两个文件的内容是否相同,并打印出两... 7、编制一个程序,将一个ASCII文件的内容复制到一个新文件中,且在复制时用小写字母代替大写字母,并计算出被转换字符的个数...

  • 求C语言高手帮忙,做一个程序,求出1~50000内的所有“黑洞数”。谢谢了...
  • 答:想了很久,在VC++6.0中调试了差不多半天,现在把求三位数和四位数中的黑洞数的程序写出来了(按定义可知一位和二位数中不存在黑洞数),现在贴出来供大家批评指正:(五位数中黑洞数的求解代码待续)include <iostream> include <stdio.h> using namespace std;int maxof3(int,int,int); //...

  • 求C语言高手编写程序:输出100之内所有个位数字为6且能被3整除的自然数...
  • 答:include<stdio.h> void main(){ int i;for(i = 0;i < 10;i ++){ if(!((i+6)%3)) //各位数字加和可被3整除的数字可被3整除,因为10a+b=9a+(a+b)printf("%d\n",i*10+6);} }

  • 几道简单的C语言编程题,请高手帮忙
  • 答:1、求1-3+5-7+……-99+101的值。include <stdio.h> void main(){ int i,element,sum=0;for(i=1;i<=101;i+=2){ element=-i;sum=sum+element;sum=-sum;} printf("%d\n",sum);} 2、编写程序,判断一个数是否是素数。6n+1,6n-1法代码 include<stdio.h> int main(){ int ...

  • 求C语言高手编写程序:为实型变量X输入一个值后,输出X的值、X的平方根...
  • 答:include <stdio.h> include <math.h> main(){ double x;double v1,v2,v3,v4;printf("Please input x:\n");scanf("%lf",&x);printf("Your input is: %g\n",x);v1=sqrt(x);v2=x*x;v3= pow(x,1.0/3);v4 = v2*x;printf("The results are: %lf %lf %lf %lf\n",v1...

    相关内容

    首页 新知 身健
    返回顶部

    © 星空5G w.xkyn.com