c語言中績點
1. 如何用c語言編寫計算GPA的程序求大神!!!
還有人和我寫類似的東西2333333
我的程序是剛剛學C沒多久寫的,其實相當單純……是每輸入一個數字更新一次GPA和學分,最後結束後才進行平均。就是每一步將成績轉換成數值,然後加在GPA(總值,沒有平均)上,並加學分值。在結束後進行平均。按題主要求似乎還要在每一步稍微區分一下科目。
代碼(簡陋,勿嘲笑)
#include <stdio.h>
int main(){
FILE* fp;
double gpa[41],l,GPA=0;
int num,i,k,j,credits=0;
fp=fopen("GPA.txt","r");
if(fp==NULL){printf("Caution!Some F*****G bastards may have deleted your file.Download a new from Dean.\n");return 1;}
for(i=0;i<41;i++){fscanf(fp,"%d%lf",&k,&l);gpa[k-60]=l;}
printf("Number of courses: ");
while( scanf("%d",&num)!=1||num<=0 ){printf("Don't tease me. I'll feel sad!\n");}
i=0;
while(i<num){
printf("Input number of credits: ");
while(scanf("%d", &k)!=1||k<=0 ){printf("Stop playing around!\n");}
printf("Input your scores: ");
while(scanf("%d",&j)!=1||j<=0 ){printf("Stop playing around!\n");}
if(j<60||j>100){ printf("1. You can prepare to meet thy end;2. Prepare the teacher for his/her funeral.\n");continue;}
credits+=k;
GPA+=k*gpa[j-60];
++i;
}
GPA=GPA/credits;
printf("Your POOR little grades: %3f\n",GPA);
getchar();
getchar();
return 0;
}
GPA.txt是個txt文檔,本校是每個分數都有對應GPA值的情況,所以有這個必要。樓主直接去掉FILE指針設置個恆定數組就好了。
2. C語言 績點問題 在線求解答 新手 剛開始學 求大神幫忙解一下這道題 謝謝
#include <stdio.h>
int main(void) {
int n;
scanf("%d", &n);
if (n < 0 || n > 100) {
printf("Invalid");
return 0;
}
if (n < 60) {
printf("Faild");
return 0;
}
printf("%.1f", (n - 50.0) / 10);
return 0;
}
3. 求----計算學分績點的C語言程序
上面的大哥太復雜了吧
我 來個簡單的:
如果你們
0-60 績點 0;
60-70 績點 1;
70-80 績點 2;
80-90 績點 3;
90-100 績點 4;
100 績點 5;
那麼我給的程序如下:(否則只需自己調整)
#include <stdio.h>
int main()
{
float a,eve,d,td=0,tj=0,j;char c;int ra;
shuru:
printf("請輸入一個成績,以及這門課程的學分是多少:(用空格分開)\n");
s:
scanf("%f%f",&a,&d);
ra=(int)a;
ra=ra/10;
while (ra>10||ra<0)
{
printf("成績是大於0,小於100的,請再次輸入!\n");
goto s;
}
while (d<0)
{
printf("課程的學分是一個正數,請再次輸入!\n");
goto s;
}
switch(ra)
{
case 10:j=5;break;
case 9:j=4; break;
case 8:j=3; break;
case 7:j=2; break;
case 6:j=1; break;
default:j=0;
}
printf("該學生這門課的績點是%.3f,學分是%f\n",j,d);
tj+=j*d;
td+=d;
p:
printf("按c鍵繼續輸入成績,按a鍵給出該學生的平均績點.\n");
getchar();
c=getchar();
if ('c'==c)
goto shuru;
else if('a'==c)
goto en;
en:
eve=tj/td;
printf("該學生的平均績點是%.3f\n",eve);
getchar(); getchar();
}
好辛苦啊,寫了一個多小時。
看在辛苦分上,感謝一下我 吧
我程序已經編譯好
到這里下載
http://hqu.e.cn/cgi-bin/storage_getshare?uid=zhome&domain=hqu.e.cn&infotoken=6b023641Sy580hVEAYSoCPl1V1eHg&down=no
一周之內下載
4. 用C語言寫如下程序,應該怎麼寫
1、學號奇偶性你可以這亮尺樣 if(學號%2 == 0)為偶,else 為奇;
2、比如說w代表女性,m代表男性,你可以char sex;if(sex == 『w』)女性else 男性;
3、四捨五入是小數部分還是還是整數部分?
4、根據成績輸出成績所屬成羨戚績點可以用if語句,或者switch語句,我覺敬派高得用if語句比較不錯,3、4你可以寫在一起。希望可你幫助到你~
5. 成績管理系統 c語言
學生成績管理系統代碼
#include<stdio.h>
#include<malloc.h>
#include<string.h>
typedef struct Student
{
int no;
char name[10];
float score[3]; //three scores
float average; //average score
struct Student *next;
}Student;
void Initial(Student *p)
{
p=(Student*)malloc(sizeof(Student));//the head of the linklist
p->next=NULL;
}
void Input(Student *p)
{
Student *stu=(Student*)malloc(sizeof(Student));
printf("學號:"); scanf("%d",&stu->no);
printf("姓名:"); scanf("%s",stu->name);
printf("成績1:"); scanf("%f",&stu->score[0]);
printf("成績2:"); scanf("%f",&stu->score[1]);
printf("成績3:"); scanf("%f",&stu->score[2]);
stu->average=(stu->score[0]+stu->score[1]+stu->score[2])/3;
stu->next=NULL;
Student *ps=(Student*)malloc(sizeof(Student));
ps=p;
while(ps->next)
ps=ps->next;
ps->next=stu;
//free(ps);
}
void Output(Student *p)
{
Student *ps=(Student*)malloc(sizeof(Student));
ps=p->next;
printf("學號\t姓名\t成績1\t成績2\t成績3\t平均分\n");
while(ps!=NULL)
{
printf("%d\t",ps->no);
printf("%s\t",ps->name);
printf("%.1f\t",ps->score[0]);
printf("%.1f\t",ps->score[1]);
printf("%.1f\t",ps->score[2]);
printf("%.1f\t\n",ps->average);
ps=ps->next;
}
free(ps);
}
void Find(Student *p)
{
Student *ps=(Student*)malloc(sizeof(Student));
ps=p->next;
char name[10];
printf("輸入要查詢的學生姓名:");
scanf("%s",name);
while(strcmp(ps->name,name)!=0) //相同時為0
ps=ps->next;
printf("學號\t姓名\t成績1\t成績2\t成績3\t平均分\n");
printf("%d\t",ps->no);
printf("%s\t",ps->name);
printf("%.1f\t",ps->score[0]);
printf("%.1f\t",ps->score[1]);
printf("%.1f\t",ps->score[2]);
printf("%.1f\t\n",ps->average);
}
void swap(Student *p1, Student *p2) //swap two nodes for sorting
{
Student *temp=(Student*)malloc(sizeof(Student));
temp->no=p1->no;
strcpy(temp->name,p1->name);
temp->score[0]=p1->score[0];
temp->score[1]=p1->score[1];
temp->score[2]=p1->score[2];
temp->average=p1->average;
p1->no=p2->no;
strcpy(p1->name,p2->name);
p1->score[0]=p2->score[0];
p1->score[1]=p2->score[1];
p1->score[2]=p2->score[2];
p1->average=p2->average;
p2->no=temp->no;
strcpy(p2->name,temp->name);
p2->score[0]=temp->score[0];
p2->score[1]=temp->score[1];
p2->score[2]=temp->score[2];
p2->average=temp->average;
free(temp);
}
void Sort(Student *p) //sort by average
{
Student *p1=(Student*)malloc(sizeof(Student));
Student *p2=(Student*)malloc(sizeof(Student));
p1=p->next;
while(p1)
{
float avg=p1->average;
p2=p1->next;
while(p2)
{
if( avg< (p2->average))
{
swap(p1,p2);
avg=p2->average;
}
p2=p2->next;
}
p1=p1->next;
}
}
void Insert(Student *p)
{
printf("按平均分高低插入數據!\n");
Student *stu=(Student*)malloc(sizeof(Student));//the data being inserted
printf("學號:"); scanf("%d",&stu->no);
printf("姓名:"); scanf("%s",stu->name);
printf("成績1:"); scanf("%f",&stu->score[0]);
printf("成績2:"); scanf("%f",&stu->score[1]);
printf("成績3:"); scanf("%f",&stu->score[2]);
stu->average=(stu->score[0]+stu->score[1]+stu->score[2])/3;
stu->next=NULL;
Student *p1=(Student*)malloc(sizeof(Student));//temp
p1=p;
while(p1->next && ((p1->next)->average) >(stu->average))
p1=p1->next;
//p1=p1->next;
stu->next=p1->next;
p1->next=stu;
}
void Menu(Student *p)
{
int select;
printf("您好,歡迎使用學生成績管理系統!\n");
printf("1:輸入學生成績數據\n2:輸出全部學生信息\n3:按姓名查找學生記錄\n4:按平均成績進行排序\n5:按平均成績高低插入數據\n6:退出\n");
scanf("%d",&select);
while(select<=6 && select>0)
{
switch(select)
{
case 1: Input(p);break;
case 2: Output(p);break;
case 3: Find(p); break;
case 4: Sort(p); break;
case 5: Insert(p); break;
case 6: printf("成功退出,歡迎再次使用!\n"); return ; break;
}
printf("1:輸入學生成績數據\n2:輸出全部學生信息\n3:按姓名查找學生記錄\n4:按平均成績進行排序\n5:按平均成績高低插入數據\n6:退出\n");
scanf("%d",&select);
}
}
int main()
{
Student *head=(Student*)malloc(sizeof(Student));
Menu(head);
}
6. 學分績點計算器的c語言程序啊
學校發了一本小冊子,不知道你看到沒有?最後幾頁專門的學分績點的計算方法。的
紀律規定的學分乘以每次考試成績= A,B,C ...
所有學科的A + B + C + ... = X
所有積分總和等於Y
X除以由Y抽獎成績來
7. 魯東大學C語言成績為「中等」怎麼算績點
如果給你分數的話,就是按分數算。
如果給的中等的話,就是70多,大概算2個績點。優秀是90
,4個績點,良好是80,3個
績點,中等是70,2個績點,及格是60,1個績點。
大概是這樣的,更細的我也不太清楚。
把所有的科目
(每門課的績點*每門課學分)/總學分
就是你的平均績點
希望對你有幫助。
還不懂可以看看學生指南。
8. 學分績點計算器的c語言程序啊
學校發了一本小冊子,不知道你看到沒有?最後幾頁專門的學分績點的計算方法。的
紀律規定的學分乘以每次考試成績=
A,B,C
...
所有學科的A
+
B
+
C
+
...
=
X
所有積分總和等於Y
X除以由Y抽獎成績來
9. C語言績點問題
scanf ("\n");//應省去
將if(b[i]>=90)
b[i]=4.0;
else if(b[i]>=85)
b[i]=3.7;
else if(b[i]>=82)
b[i]=3.3;
else if(b[i]>=78)
b[i]=3.0;
else if(b[i]>=72)
b[i]=2.3;
else if(b[i]>=68)
b[i]=2.0;
else if(b[i]>=64)
b[i]=1.5;
else if(b[i]>=60)
b[i]=1.0;
else b[i]=0;
倒過來,把if(b[i]<60)放在最前然後是>=60,>=64,>=68,以此類推,不然僅僅一個else不行
還有最後是除以學分之和而不是總學科數
10. Sicily 計算績點 c語言 代碼不知哪裡錯了··
你好!!
#include<cstdio>
#include<cstdlib>
usingnamespacestd;
intmain()
{
ints;
scanf("%d",&s);
floatp;
if(s>100||s<0)//大於100,小於0,都是錯誤的
{
printf("Invalid
");
}
elseif(s>=90&&s<=100)//&&是同時滿足前後兩個條件
{
p=(s%90)/10.0+4.0;
printf("%.1f
",p);
}
elseif(s>=80&&s<=89)//&猛山&是同時滿足前後兩個條件
{
枝侍中p=(s%80)/10.0+3.0;
printf("%.1f
",p);
}
elseif(s>=70&&s<=79)//&&是同時滿足前後兩個條件
{
p=(s%70)/10.0+2.0;
printf("%.1f
",p);
}
elseif(s>=60&&s<=69)//&談穗&是同時滿足前後兩個條件
{
p=(s%60)/10.0+1.0;
printf("%.1f
",p);
}
elseif(s>=0&&s<=59)//&&是同時滿足前後兩個條件
{
printf("Failed
");
return0;
}
}