C语言程序求助

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言程序求助相关的知识,希望对你有一定的参考价值。

1.按要求输入界面;

2.按要求输入班级人数并判断大/小班,判断规则:5人以上为大班,5人及以下为小班;

3.通过键盘输入班级学生的成绩;

4.判断学生成绩是否合格,并输出。判断规则:60分以下不及格输出“补考”,60-79分输出“合格”,80-100分输出“优秀”,负分数和100分以上显示“错误”。

5.求学生成绩的最高分;

6.并计算该班级学生的总分和平均成绩并显示,规则:负分数和100分以上显示“错误”的分数不计数总分及平均成绩计算中;

程序结束界面输出。

/*
1.按要求输入界面;

2.按要求输入班级人数并判断大/小班,判断规则:5人以上为大班,5人及以下为小班;

3.通过键盘输入班级学生的成绩;

4.判断学生成绩是否合格,并输出。判断规则:60分以下不及格输出“补考”,60-79分输出“合格”,80-100分输出“优秀”,负分数和100分以上显示“错误”。

5.求学生成绩的最高分;

6.并计算该班级学生的总分和平均成绩并显示,规则:负分数和100分以上显示“错误”的分数不计数总分及平均成绩计算中;

程序结束界面输出。

*/
#include "stdio.h"
#include "math.h"
#include "string.h"
void inquire_Num();
void init_Cls();
void inset_Grade();
struct score
float chinese;
float math;
float english;
;
struct student
int id;
    char name[10];
char sex[2];
struct score sc;
;

struct cls
struct student stu[10];
int Cls_number;
int stu_Num;//学生人数
;
struct cls ClsNum[5];
void main()
int choose=0;
printf("/***********************************/\\n");
printf("/*         1、班级属性             */\\n");
printf("/*         2、输入成绩             */\\n");
printf("/*         3、判断合格             */\\n");
printf("/*         4、求最高分             */\\n");
printf("/*         5、求平均分             */\\n");
printf("/***********************************/\\n");
printf("请输入对应的序号(1--5)\\n");
scanf("%d",&choose);
init_Cls();
switch(choose)
case 1:
inquire_Num();
break;
case 2:
inset_Grade();
break;

system("pause");


void init_Cls()
//一班
ClsNum[0].Cls_number=1;
ClsNum[0].stu_Num=5;

ClsNum[0].stu[0].id=1;
strcpy(ClsNum[0].stu[0].name,"卫庄");
strcpy(ClsNum[0].stu[0].sex,"男");
ClsNum[0].stu[0].sc.chinese=80.5;
ClsNum[0].stu[0].sc.math=88.5;
ClsNum[0].stu[0].sc.english=90.5;

ClsNum[0].stu[1].id=2;
strcpy(ClsNum[0].stu[1].name,"李斯");
strcpy(ClsNum[0].stu[1].sex,"男");
ClsNum[0].stu[1].sc.chinese=69.5;
ClsNum[0].stu[1].sc.math=70;
ClsNum[0].stu[1].sc.english=80;

ClsNum[0].stu[2].id=3;
strcpy(ClsNum[0].stu[2].name,"韩非");
strcpy(ClsNum[0].stu[2].sex,"男");
ClsNum[0].stu[2].sc.chinese=100;
ClsNum[0].stu[2].sc.math=100;
ClsNum[0].stu[2].sc.english=100;

ClsNum[0].stu[3].id=4;
strcpy(ClsNum[0].stu[3].name,"张良");
strcpy(ClsNum[0].stu[3].sex,"男");
ClsNum[0].stu[3].sc.chinese=99.5;
ClsNum[0].stu[3].sc.math=100;
ClsNum[0].stu[3].sc.english=100;

ClsNum[0].stu[3].id=5;
strcpy(ClsNum[0].stu[4].name,"白凤");
strcpy(ClsNum[0].stu[4].sex,"男");
ClsNum[0].stu[4].sc.chinese=65;
ClsNum[0].stu[4].sc.math=30;
ClsNum[0].stu[4].sc.english=50;

//二班
ClsNum[1].Cls_number=2;
ClsNum[1].stu_Num=2;

ClsNum[1].stu[0].id=1;
strcpy(ClsNum[1].stu[0].name,"姬无夜");
strcpy(ClsNum[1].stu[0].sex,"男");
ClsNum[1].stu[0].sc.chinese=30;
ClsNum[1].stu[0].sc.math=20;
ClsNum[1].stu[0].sc.english=30;

ClsNum[1].stu[1].id=2;
strcpy(ClsNum[0].stu[1].name,"赵高");
strcpy(ClsNum[0].stu[1].sex,"男");
ClsNum[1].stu[1].sc.chinese=50;
ClsNum[1].stu[1].sc.math=90;
ClsNum[1].stu[1].sc.english=60;


void inquire_Num()
int Cls_ID;
printf("请输入需要查询的班级:\\n");
scanf("%d",&Cls_ID);
if(Cls_ID==0||ClsNum[Cls_ID-1].Cls_number==0)
printf("该班级不存在");
else
if(ClsNum[Cls_ID-1].stu_Num>=5)
printf("%d班级为大班\\n",Cls_ID);
else
printf("%d班级为小班\\n",Cls_ID);




void inset_Grade()
int clsnumber=0;
int stuId=0;
float chinese,math,english;
printf("请输入需要输入几班的成绩\\n");
scanf("%d",&clsnumber);
printf("请输入学生学号\\n");
scanf("%d",&stuId);
if(ClsNum[clsnumber-1].Cls_number==0)
printf("查无此班");
return;
else
if(ClsNum[clsnumber-1].stu[stuId-1].id==0)
printf("查无此人");
return;
else
printf("请分别输入该学生的语文 数学 英语(用空格隔开)");
scanf("%d %d %d",&chinese,&math,&english);
ClsNum[clsnumber-1].stu[stuId-1].sc.chinese=chinese;
ClsNum[clsnumber-1].stu[stuId-1].sc.math=math;
ClsNum[clsnumber-1].stu[stuId-1].sc.math=english;

printf("输入成功\\n");

上边是实现了两个功能,其他功能你对照着完善下,没有时间做,毕竟还要上班。下次非常麻烦的代码,你的奖励20可没人做

参考技术A C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
参考技术B 1.按要求输入界面;
2.按要求输入班级人数并判断大/小班,判断规则:5人以上为大班,5人及以下为小班;
3.通过键盘输入班级学生的成绩;
4.判断学生成绩是否合格,并输出。判断规则:60分以下不及格输出“补考”,60-79分输出“合格”,80-100分输出“优秀”,负分数和100分以上显示“错误”。
5.求学生成绩的最高分;
6.并计算该班级学生的总分和平均成绩并显示,规则:负分数和100分以上显示“错误”的分数不计数总分及平均成绩计算中;
程序结束界面输出。

和楼主一样的题,谁会做,麻烦帮帮我

求助 c语言实现高精度乘法

Hpre.h 文件

//HighPrecision
// 1234567890 高位存在数组最末
#include <iostream>
#include <string.h>
#include <vector>
using namespace std;
const int maxlen=300;
class HP
public:

HP()
HP(int inte,int len);
~HP() ;//
HP(int inte);
HP(const char*str);
int HP_DectoB(int sum,int b,int *S);

friend ostream& operator << (ostream &cout,const HP &x)

if(x.sign_bit) cout<<"-";
for(int i=x.len;i>0;i--)

cout<<x.num.at(i);
if((i-1)%3==0 && i!=1) cout<<",";

return cout;

HP operator=(int inte);
HP operator=(const char* str);
HP operator*(const HP &b);
HP operator+(const HP &b);
HP operator-(const HP &b);
HP operator/(const HP &b);
HP operator%(const HP &b);
HP operator++();
HP operator++(int);//后置自增运算符
HP operator--();
HP operator--(int);

int Compare(const HP &b);
HP GCD(const HP b);

private:
int len;
vector<int> num;
bool sign_bit;//符号位 1 - 0 +
;

/////////////////////////////
Hpre.cpp 文件

#include "HPre.h"

#include "HPre.h"

HP::HP(int inte)

if(inte<0) sign_bit=1;
else sign_bit=0;
num.clear();
num.push_back(0);

if(inte==0)
for(len=0;inte>0;)



HP::HP(const char*str)

num.clear();
num.push_back(0);
if(str[0]!='-') sign_bit=0,str++;
else sign_bit=1;
len=strlen(str);
for(int i=1;i<=len;i++) num.push_back(str[len-i]-'0');


HP HP::operator=(int inte)

if(inte<0) sign_bit=1;
else sign_bit=0;
num.clear();
num.push_back(0);
if(inte==0)
for(len=0;inte>0;)
return (*this);


HP HP::operator=(const char *str)

if(str[0]!='-') sign_bit=0,str++;
else sign_bit=1;
len=strlen(str);
num.push_back(0);
for(int i=1;i<=len;i++) num.push_back(str[len-i]-'0');
return (*this);


HP HP::operator*(const HP &b)

int i,j;
int c_len=len+b.len;
HP c(0);
c.num.resize(c_len+1,0);
if(this->sign_bit!=b.sign_bit) c.sign_bit=1;
else c.sign_bit=0;

for(i=1;i<=len;i++)
for(j=1;j<=b.len;j++) c.num[i+j-1]+=num[i]*b.num[j];
for(i=1;i<c_len;i++)
while(c.num[i])
while(i>1 && !c.num[i]) i--;
c.len=i;
return c;


HP HP::operator-(const HP &b)

int i,j;
HP c;
int tlen=0;
if(b.len>this->len) tlen=b.len;
else tlen=this->len;
c.num.resize(tlen+1,0);
if(Compare(b)>=0) c.sign_bit=0;
else c.sign_bit=1;

for(i=1,j=0;i<=len;i++)

c.num[i]=num[i]-j;
if(i<=b.len) c.num[i]-=b.num[i];
if(c.num[i]<0)
else j=0;

c.len=len;
while(c.len>1 && !c.num[c.len]) c.len--;
return c;


HP HP::operator/(const HP &b)

int i,j;
HP d(0),c;
int tlen=0;
if(b.len>this->len) tlen=b.len;
else tlen=this->len;
c.num.resize(tlen+1,0);//商
d.num.resize(tlen+1,0);//余数
if(this->sign_bit!=b.sign_bit) c.sign_bit=1;
else c.sign_bit=0;

for(i=len;i>0;i--)

if(!(d.len==1 && d.num[1]==0))//除数不为0

for(j=d.len;j>0;j--)
d.num[j+1]=d.num[j];
++d.len;

d.num[1]=num[i];c.num[i]=0;
while( (j=d.Compare(b))>=0)
d=d-b; c.num[i]++;
if(j==0) break;


c.len=len;
while((c.len>1)&&(c.num[c.len]==0)) c.len--;
return c;


HP HP::operator+(const HP &b)

int i;
HP c;
int tlen=0;
if(b.len>this->len) tlen=b.len;
else tlen=this->len;
c.num.resize(tlen,0);
c.num[1]=0;
for(i=1;i<=len||i<=b.len || c.num[i];i++)
if(i<=len) c.num[i]+=num[i];
if(i<=b.len) c.num[i]+=b.num[i];
c.num.push_back(c.num[i]/10); c.num[i]%=10;

c.len=i-1; if(c.len==0) c.len=1;
return c;


int HP::Compare(const HP&y)

if(len>y.len) return 1;
if(len<y.len) return -1;
int i=len;
while((i>1) &&(num[i]==y.num[i])) i--;
return num[i]-y.num[i];


HP HP::operator %(const HP &b)

int i,j;
HP d(0);
int tlen=b.len;
d.num.resize(tlen+3,0);

for(i=len;i>0;i--)

if(!(d.len==1 && d.num[1]==0))

int t=d.num.size()-1;
if(t==d.len) d.num.push_back(0);
for (j=d.len;j>0;j--)
d.num[j+1]=d.num[j];
++d.len;

d.num[1]=num[i];

while ((j=d.Compare(b)>=0))

d=d-b;
if(j==0) break;


return d;


HP HP::GCD(HP b)

HP d(1);
const HP zero(0);
int d_len=0;
if(len>b.len) d_len=b.len;
else d_len=len;
d.num.resize(d_len+2);
d=*this%b;
if(d.Compare(zero)==0)

else return b.GCD(d);


//////////////////////
main.cpp文件

#include <iostream>
#include "HPre.h"
using namespace std;

#include <iostream>
#include "HPre.h"
using namespace std;

int main()

HP t("18446744073709551616");//2^64
HP a(12);
HP b(9);
HP c(3);
a=a*t;
b=b*t;
cout<<a.GCD(b)<<endl;
cout<<c*t<<endl;

return 1;


验算没错 不知道有其他错误没 自己写的类
参考技术A 最大位数不超过50000。

#include<stdio.h>
#include<string.h>
int main()

char a[50001],b[50001];
int a1[50001],b1[50001],c[100002];
int lena,lenb,i,j,flag;
while(scanf("%s",a)!=EOF)

scanf("%s",b);
getchar();
j=0;
memset(a1,0,sizeof(a1));
memset(b1,0,sizeof(b1));
memset(c,0,sizeof(c));
lena=strlen(a);
lenb=strlen(b);
for(i=lena-1;i>=0;i--)
a1[j++]=a[i]-'0';
j=0;
for(i=lenb-1;i>=0;i--)
b1[j++]=b[i]-'0';
for(j=0;j<lenb;j++)

for(i=0;i<lena;i++)
c[i+j]=b1[j]*a1[i];

for(i=0;i<lena+lenb;i++)

if(c[i]>=10)

c[i+1]+=c[i]/10;
c[i]%=10;


flag=0;
for(i;i>=0;i--)

if(flag==1)printf("%d",c[i]);
else

if(c[i]!=0)

printf("%d",c[i]);flag=1;



if(flag==0)printf("0\n");
else printf("\n");

return 0;

以上是关于C语言程序求助的主要内容,如果未能解决你的问题,请参考以下文章

c语言作业,求助!

C语言程序求助

C语言程序求助!

求助一道C语言设计题目

C语言求助。急急

C语言结构体大小问题求助。