C语言 编写程序

C语言 编写程序,第1张

#include<stdioh>

#define M 100 //投票人数上限

#define N 3 //候选人数

struct

{

    char code; //代号

    int score; //得分

} candidates[N], st; //候选人结构体数组

int main()

{

    char candidate[M][N]; //投票

    int n, c=0; //n: 实际投票人数,c: 有效选票

    int i,j,k,t;

    char tmp[N+1]; //存放投票的中间变量

    int s[N]= {5,3,2};

    for(i=0; i<N; ++i)

    {

        printf("输入第 %d 个候选人的代号:", i+1);

        scanf("%c", &candidates[i]code);

        fflush(stdin); //清除回车符

        candidates[i]score=0;

    }

    printf("输入投票人数:");

    scanf("%d",&n);

    for(i=0; i<n; ++i) //输入选票

    {

        printf("输入第 %d 张选票:", i+1);

        scanf("%s",tmp);

        candidate[i][0]=tmp[0];

        candidate[i][1]=tmp[1];

        candidate[i][2]=tmp[2];

        if(tmp[0]==tmp[1] || tmp[1]==tmp[2] || tmp[0]==tmp[2])

            printf("该票无效:%s\n", tmp);

        else

        {

//tmp[0]号候选人加5分;

//tmp[1]号候选人加3分;

//tmp[2]号候选人加2分;

            c++;

            for(j=0; j<N; ++j)

                for(k=0; k<N; ++k)

                    if(candidates[k]code==tmp[j])

                        candidates[k]score+=s[j];

        }

    }

//得分排序

    for(i=0; i<N-1; ++i)

    {

        k=i;

        for(j=i+1; j<N; ++j)

            if(candidates[j]score>candidates[k]score)

                k=j;

        st=candidates[i];

        candidates[i]=candidates[k];

        candidates[k]=st;

    }

    if(candidates[0]score==candidates[1]score)

        printf("前两名得分是否相同,都是 %d 分,重新投票。", candidates[0]score);

    else

    {

        printf("候选人\t得分\n");

        for(i=0; i<N; ++i)

            printf("%c\t%d\n", candidates[i]code, candidates[i]score);

        printf("祝贺 %c 当选冠军!\n", candidates[0]code);

    }

    return 0;

}

#include<stdioh> /引用库函数/

#include<stdlibh>

#include<ctypeh>

#include<stringh>

typedef struct /定义结构体数组/

{

char num[10]; /学号/

char name[20]; /姓名/

int score; /成绩/

}Student;

Student stu[80]; /结构体数组变量/

int menu_select() /菜单函数/

{

char c;

do{

system("cls"); /运行前清屏/

printf("\t\tStudents' Grade Management System\n"); /菜单选择/

printf("\t\t | 1 Input Records |\n");

printf("\t\t | 2 Display All Records |\n");

printf("\t\t | 3 Sort |\n");

printf("\t\t | 4 Insert a Record |\n");

printf("\t\t | 5 Delete a Record |\n");

printf("\t\t | 6 Query |\n");

printf("\t\t | 7 Statistic |\n");

printf("\t\t | 8 Add Records from a Text File|\n");

printf("\t\t | 9 Write to a Text file |\n");

printf("\t\t | 0 Quit |\n");

printf("\t\t\n");

printf("\t\t\tGive your Choice(0-9):");

c=getchar(); /读入选择/

}while(c<'0'||c>'9');

return(c-'0'); /返回选择/

}

int Input(Student stud[],int n) /输入若干条记录/

{int i=0;

char sign,x[10]; /x[10]为清除多余的数据所用/

while(sign!='n'&&sign!='N') /判断/

{ printf("\t\t\tstudent's num:"); /交互输入/

scanf("\t\t\t%s",stud[n+i]num);

printf("\t\t\tstudent's name:");

scanf("\t\t\t%s",stud[n+i]name);

printf("\t\t\tstudent's score:");

scanf("\t\t\t%d",&stud[n+i]score);

gets(x); /清除多余的输入/

printf("\t\t\tany more records(Y/N)");

scanf("\t\t\t%c",&sign); /输入判断/

i++;

}

return(n+i);

}

void Display(Student stud[],int n) /显示所有记录/

{

int i;

printf("\t\t\t-----------------------------------\n"); /格式头/

printf("\t\t\tnumber name score\n");

printf("\t\t\t-----------------------------------\n");

for(i=1;i<n+1;i++) /循环输入/

{

printf("\t\t\t%-16s%-15s%d\n",stud[i-1]num,stud[i-1]name,stud[i-1]score);

if(i>1&&i%10==0) /每十个暂停/

{printf("\t\t\t-----------------------------------\n"); /格式/

printf("\t\t\t");

system("pause");

printf("\t\t\t-----------------------------------\n");

}

}

printf("\t\t\t");

system("pause");

}

void Sort_by_num(Student stud[],int n) /按学号排序/

{ int i,j,p,q,s;

char t[10];

for(i=0;i<n-1;i++) /冒泡法排序/

for(j=0;j<n-1-i;j++)

if(strcmp(stud[j]num,stud[j+1]num)>0)

{strcpy(t,stud[j+1]num);

strcpy(stud[j+1]num,stud[j]num);

strcpy(stud[j]num,t);

strcpy(t,stud[j+1]name);

strcpy(stud[j+1]name,stud[j]name);

strcpy(stud[j]name,t);

p=&stud[j+1]score;

q=&stud[j]score;

s=p;

p=q;

q=s;

}

}

int Insert_a_record(Student stud[],int n) /插入一条记录/

{char x[10]; /清除多余输入所用/

printf("\t\t\tstudent's num:"); /交互式输入/

scanf("\t\t\t%s",stud[n]num);

printf("\t\t\tstudent's name:");

scanf("\t\t\t%s",stud[n]name);

printf("\t\t\tstudent's score:");

scanf("\t\t\t%d",&stud[n]score);

gets(x);

n++;

Sort_by_num(stud,n); /调用排序函数/

printf("\t\t\tInsert Successed!\n"); /返回成功信息/

return(n);

}

int Delete_a_record(Student stud[],int n) /按姓名查找,删除一条记录/

{ char s[20];

int i=0,j;

printf("\t\t\ttell me his(her) name:"); /交互式问寻/

scanf("%s",s);

while(strcmp(stud[i]name,s)!=0&&i<n) i++; /查找判断/

if(i==n)

{ printf("\t\t\tnot find!\n"); /返回失败信息/

return(n);

}

for(j=i;j<n-1;j++) /删除 *** 作/

{

strcpy(stud[j]num,stud[j+1]num);

strcpy(stud[j]name,stud[j+1]name);

stud[j]score=stud[j+1]score;

}

printf("\t\t\tDelete Successed!\n"); /返回成功信息/

return(n-1);

}

void Query_a_record(Student stud[],int n) /查找并显示一个记录/

{ char s[20];

int i=0;

printf("\t\t\tinput his(her) name:"); /交互式输入/

scanf("\t\t\t%s",s);

while(strcmp(stud[i]name,s)!=0&&i<n) i++; /查找判断/

if(i==n)

{ printf("\t\t\tnot find!\n"); /输入失败信息/

return;

}

printf("\t\t\this(her) number:%s\n",stud[i]num); /输出该学生信息/

printf("\t\t\this(her) score:%d\n",stud[i]score);

}

void Statistic(Student stud[],int n) /新增功能,输出统计信息/

{ int i,j=0,k=0,sum=0;

float aver; /成绩平均值/

for(i=0;i<n;i++) /循环输入判断/

{

sum+=stud[i]score;

if(stud[j]score>stud[i]score) j=i;

if(stud[k]score<stud[i]score) k=i;

}

aver=10sum/n;

printf("\t\t\tthere are %d records\n",n); /总共记录数/

printf("\t\t\tthe hignest score:\n"); /最高分/

printf("\t\t\tnumber:%s name:%s score:%d\n",stud[j]num,stud[j]name,stud[j]score);

printf("\t\t\tthe lowest score:\n"); /最低分/

printf("\t\t\tnumber:%s name:%s score:%d\n",stud[k]num,stud[k]name,stud[k]score);

printf("\t\t\tthe average score is %52f\n",aver); /平均分/

}

int AddfromText(Student stud[],int n) /从文件中读入数据/

{ int i=0,num;

FILE fp; /定义文件指针/

char filename[20]; /定义文件名/

printf("\t\t\tInput the filename:");

scanf("\t\t\t%s",filename); /输入文件名/

if((fp=fopen(filename,"rb"))==NULL) /打开文件/

{ printf("\t\t\tcann't open the file\n"); /打开失败信息/

printf("\t\t\t");

system("pause");

return(n);

}

fscanf(fp,"%d",&num); /读入总记录量/

while(i<num) /循环读入数据/

{

fscanf(fp,"%s%s%d",stud[n+i]num,stud[n+i]name,&stud[n+i]score);

i++;

}

n+=num;

fclose(fp); /关闭文件/

printf("\t\t\tSuccessed!\n");

printf("\t\t\t");

system("pause");

return(n);

}

void WritetoText(Student stud[],int n) /将所有记录写入文件/

{

int i=0;

FILE fp; /定义文件指针/

char filename[20]; /定义文件名/

printf("\t\t\tWrite Records to a Text File\n"); /输入文件名/

printf("\t\t\tInput the filename:");

scanf("\t\t\t%s",filename);

if((fp=fopen(filename,"w"))==NULL) /打开文件/

{

printf("\t\t\tcann't open the file\n");

system("pause");

return;

}

fprintf(fp,"%d\n",n); /循环写入数据/

while(i<n)

{

fprintf(fp,"%-16s%-15s%d\n",stud[i]num,stud[i]name,stud[i]score);

i++;

}

fclose(fp); /关闭文件/

printf("Successed!\n"); /返回成功信息/

}

void main() /主函数/

{

int n=0;

for(;;)

{

switch(menu_select()) /选择判断/

{

case 1:

printf("\t\t\tInput Records\n"); /输入若干条记录/

n=Input(stu,n);

break;

case 2:

printf("\t\t\tDisplay All Records\n"); /显示所有记录/

Display(stu,n);

break;

case 3:

printf("\t\t\tSort\n");

Sort_by_num(stu,n); /按学号排序/

printf("\t\t\tSort Suceessed!\n");

printf("\t\t\t");

system("pause");

break;

case 4:

printf("\t\t\tInsert a Record\n");

n=Insert_a_record(stu,n); /插入一条记录/

printf("\t\t\t");

system("pause");

break;

case 5:

printf("\t\t\tDelete a Record\n");

n=Delete_a_record(stu,n); /按姓名查找,删除一条记录/

printf("\t\t\t");

system("pause");

break;

case 6:

printf("\t\t\tQuery\n");

Query_a_record(stu,n); /查找并显示一个记录/

printf("\t\t\t");

system("pause");

break;

case 7:

printf("\t\t\tStatistic\n");

Statistic(stu,n); /新增功能,输出统计信息/

printf("\t\t\t");

system("pause");

break;

case 8:

printf("\t\t\tAdd Records from a Text File\n");

n=AddfromText(stu,n); /新增功能,输出统计信息/

break;

case 9:

printf("\t\t\tWrite to a Text file\n");

WritetoText(stu,n); /循环写入数据/

printf("\t\t\t");

system("pause");

break;

case 0:

printf("\t\t\tHave a Good Luck,Bye-bye!\n"); /结束程序/

printf("\t\t\t");

system("pause");

exit(0);

}

}

}

#include <stdioh>

int main()

{

printf("size of char=%d\n",sizeof(char));

printf("size of short=%d\n",sizeof(short));

printf("size of int=%d\n",sizeof(int));

printf("size of long int=%d\n",sizeof(long));

printf("size of float=%d\n",sizeof(float));

printf("size of double=%d\n",sizeof(double));

}

编写音乐小程序要用到格式代码如下:

1、音乐播放逻辑代码pages、index、indexjs。

2、底部播放器的结构代码page/index、indexwxml,底部播放器暂停/播放按钮控制歌曲pages、index、indexwxml。

for(int i=1;i<1000;i++){

Systemoutprintln(Stringformat("%04d",i));

}

d代表整数

%4代表格式化为4位长

%04代表位数不足4位的时候前面填0

这个问题好简单的啊。记MARK下,晚上有空了给你简单写写吧。

=======================

楼下的真快啊,两位写得都不错,不过最大的问题是都没有做输入验证。我简单写了下,和各位分享一下。

=======================

代码在g++编译器下验证通过,如果在VC++环境下“fflush(stdin)”这个命令不能清空输入缓存,需用“while(getchar()!='\n')”这段代码代替。

=======================

先展示下结果:

请输入第1个学生的姓名:tt

请输入第1个学生的学号:001

请输入第1个学生的英文成绩:abc

请重新输入第1个学生的英文成绩(0-100):99

请输入第1个学生的数学成绩:abc

请重新输入第1个学生的数学成绩(0-100):90

请输入第1个学生的C语言成绩:ee

请重新输入第1个学生的C语言成绩(0-100):70

请输入第1个学生的体育成绩:60

请输入第2个学生的姓名:gg

请输入第2个学生的学号:002

请输入第2个学生的英文成绩:99

请输入第2个学生的数学成绩:88

请输入第2个学生的C语言成绩:77

请输入第2个学生的体育成绩:66

请输入第3个学生的姓名:hh

请输入第3个学生的学号:003

请输入第3个学生的英文成绩:55

请输入第3个学生的数学成绩:66

请输入第3个学生的C语言成绩:77

请输入第3个学生的体育成绩:88

name sno English Math Cgrade PEgrade avg

tt 001 99 90 70 60 79750000

gg 002 99 88 77 66 82500000

hh 003 55 66 77 88 71500000

=======================================

结果文件:

name sno English Math Cgrade PEgrade avg

tt 001 99 90 70 60 79750000

gg 002 99 88 77 66 82500000

hh 003 55 66 77 88 71500000

========================================

源代码:

#include<stdioh>

#include<stdlibh>

#define MAXSIZE 3

typedef struct student

{

char name[20];

char sno[20];

int English;

int Math;

int Cgrade;

int PEgrade;

}student;

int main()

{

FILE fp = NULL;

student stu[MAXSIZE];

float avg[MAXSIZE];

int i;

//enter the students info

for(i=0;i<MAXSIZE;i++)

{

printf("\n请输入第%d个学生的姓名:",i+1);

scanf("%s",stu[i]name);

fflush(stdin);

printf("\n请输入第%d个学生的学号:",i+1);

scanf("%s",stu[i]sno);

fflush(stdin);

printf("\n请输入第%d个学生的英文成绩:",i+1);

while(1)

{

scanf("%d",&stu[i]English);

if( stu[i]English <= 100 && stu[i]English >=0 )

break;

printf("\n请重新输入第%d个学生的英文成绩(0-100):",i+1);

fflush(stdin);

}

printf("\n请输入第%d个学生的数学成绩:",i+1);

while(1)

{

scanf("%d",&stu[i]Math);

if( stu[i]Math <= 100 && stu[i]Math >=0 )

break;

printf("\n请重新输入第%d个学生的数学成绩(0-100):",i+1);

fflush(stdin);

}

printf("\n请输入第%d个学生的C语言成绩:",i+1);

while(1)

{

scanf("%d",&stu[i]Cgrade);

if( stu[i]Cgrade <= 100 && stu[i]Cgrade >=0 )

break;

printf("\n请重新输入第%d个学生的C语言成绩(0-100):",i+1);

fflush(stdin);

}

printf("\n请输入第%d个学生的体育成绩:",i+1);

while(1)

{

scanf("%d",&stu[i]PEgrade);

if( stu[i]PEgrade <= 100 && stu[i]PEgrade >=0 )

break;

printf("\n请重新输入第%d个学生的体育成绩(0-100):",i+1);

fflush(stdin);

}

}

for(i=0;i<MAXSIZE;i++)

{

avg[i] = (stu[i]English + stu[i]Math + stu[i]Cgrade + stu[i]PEgrade ) / 40;

}

fp=fopen("atxt","w");

fprintf(fp, "name\tsno\tEnglish\tMath\tCgrade\tPEgrade\tavg\n");

printf( "name\tsno\tEnglish\tMath\tCgrade\tPEgrade\tavg\n");

for( i = 0; i < MAXSIZE; i++ )

{

fprintf(fp, "%s\t%s\t%d\t%d\t%d\t%d\t%f\n", stu[i]name, stu[i]sno, stu[i]English, stu[i]Math, stu[i]Cgrade, stu[i]PEgrade, avg[i]);

printf("%s\t%s\t%d\t%d\t%d\t%d\t%f\n", stu[i]name, stu[i]sno, stu[i]English, stu[i]Math, stu[i]Cgrade, stu[i]PEgrade, avg[i]);

}

fclose(fp);

return 0;

}

===============================================

以上就是关于C语言 编写程序全部的内容,包括:C语言 编写程序、C语言程序编写!、帮忙编个C语言程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10134607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存