电子商务网站建设实习报告,绍兴企业网站建站模板,佛山营销网站建设制作,seo整站优化更能准确获得客户题解 模拟双目运算符一元二次方程求解水仙花数统计学生成绩学生成绩管理模拟选举大小写字符转换最大公约数、最小公倍数字符串反序 模拟双目运算符
编写一个根据用户键入的两个操作数和一个双目运算符#xff0c;由计算机输出结果的程序。
#includestdio.hint opera… 题解 模拟双目运算符一元二次方程求解水仙花数统计学生成绩学生成绩管理模拟选举大小写字符转换最大公约数、最小公倍数字符串反序 模拟双目运算符
编写一个根据用户键入的两个操作数和一个双目运算符由计算机输出结果的程序。
#includestdio.hint operate(int a,int b,char c){switch(c){case : return ab;case -: return a-b;case *: return a*b;case /: return a/b;case %: return a%b;default:printf(输入错误\n);return 0;}
}int main() {int a,b;char c;scanf(%d %c %d,a,c,b);printf(%d %c %d %d,a,c,b,operate(a,b,c));return 0;
}
一元二次方程求解
已知文件 Coefficient.txt 中存有多个方程 ax2 bx c 0 中系数 a, b, c 的值数据按行排列编写程序求出方程的解并将结果写入到 result.txt 文件中要求考虑 a, b, c 各种取值情况。
Coefficient.txt 内容举例
5 25 3
0 2 6
0 0 0
1 1 8
......#includestdio.h
#includemath.hint main() {FILE *fp1,*fp2;if((fp1fopen(Coefficient.txt,r))NULL){printf(不能打开Coefficient.txt文件\n);}if((fp2fopen(result.txt,w))NULL){printf(不能打开result.txt文件\n);}double a,b,c,delta;double x1,x2;while(fscanf(fp1,%lf %lf %lf,a,b,c)!EOF){if(a!0){delta b*b-4*a*c;if(delta0){fprintf(fp2,结果不存在\n);}else{x1(-bsqrt(delta))/(2*a);x2(-b-sqrt(delta))/(2*a);fprintf(fp2,x1%.2lf,x2%.2lf\n,x1,x2);}}else{if(b!0){fprintf(fp2,x%.2lf\n,-c/b);}else{if(c0){fprintf(fp2,任意解\n);}else{fprintf(fp2,无解\n);}}}}if(fclose(fp1)! 0) printf(关闭Cofficient.txt文件错误\n);if(fclose(fp2)! 0) printf(关闭result.txt文件错误\n);return 0;
}水仙花数
打印出所有的 “水仙花数”所谓 “水仙花数” 是指一个 3位数其各位数字立方和等于该数本身。例如153是一水仙花数因为 153 13 53 33。
#includestdio.h
#includemath.hint main() {int a, b, c;//a,b,c对应个位,十位百位for (int i 100; i 999; i) {a i % 10;b i / 10 % 10;c i / 100;if (pow(a, 3) pow(b, 3) pow(c, 3) i) {printf(%d\n, i);}}return 0;
}统计学生成绩
已知共有 30 名学生每名学生有数学、语文、物理、化学、英语这 5 门课班主任需要统计总分在前 10 名的同学的姓名和学号另外特别关注这 10 名同学中有某门课程低于 80 分的同学请编写程序实现上述功能。若有分数相同允许和第十名并列输出。程序添加必要的注释
#include stdio.h
#define M 5
#define N 6 //6人举例typedef struct Student{char *name;char *id;double score[M];double sum;
}student;void Sort(student stu[]){student temp;for(int i0;iN;i){for(int j0;jN-1-i;j){if(stu[j].sumstu[j1].sum){tempstu[j1];stu[j1]stu[j];stu[j]temp;}}}
}int main()
{student s[N]{{zhang, 001,{90, 90, 80, 90, 90}},{li, 002, {90, 80, 60, 90, 70}},{wang, 003, {70, 40, 60, 80, 80}},{zhao, 004, {20, 30, 80, 90, 90}},{zhou, 005, {50, 50, 70, 80, 50}},{liu, 006, {70, 60, 90, 90, 20}},};for(int i0;iN;i){for(int j0;jM;j){s[i].sums[i].score[j];}}Sort(s);for(int i0;iN;i){printf(学号%s 姓名%s 总分%.2lf,s[i].id,s[i].name,s[i].sum);for(int j0;jM;j){if(s[i].score[j]80){switch(j1){case 1: printf(语文低于80分!); break;case 2: printf(数学低于80分!); break;case 3: printf(英语低于80分!); break;case 4: printf(物理低于80分!); break;case 5: printf(化学低于80分!); break;}}}printf(\n);}return 0;
}
学生成绩管理
输入 n 个学生的学号、姓名、数学成绩、语文成绩和英语成绩求出每位学生的三门课程的总分然后按总分由高到低排序并将排序结果按学号、姓名、数学成绩、语文成绩、英语成绩、总分和名次打印输出到屏幕和文件 student.dat 中。要求用结构体描述学生信息输出打印时每位学生信息占一行且上下列对齐总分相同时名次相同。例如假设有四个成绩为 280、275、275、250则对应的名次为 1、2、2、4。
#include stdio.h
#define N 10typedef struct Student{char id[10];char name[20];double chinese;double math;double english;double sum;int rank;
}student;void Sort(student s[],int n){student temp;for(int i0;in;i){for(int j0;jn-1-i;j){if(s[j].sum s[j1].sum){temps[j1];s[j1]s[j];s[j]temp;}}}
}int main()
{int n;student s[N];FILE *fp;if((fpfopen(student.dat,w))NULL){printf(打开文件错误\n);return 0;}printf(请输入学生数量);scanf(%d,n);printf(请依次输入学生信息\n);for(int i0;in;i){scanf(%s %s %lf %lf %lf,s[i].id,s[i].name,s[i].chinese,s[i].math,s[i].english);}for(int i0;in;i){s[i].sum s[i].chineses[i].maths[i].english;}Sort(s,n);for(int i0;in;i){s[i].ranki1;for(int j0;ji;j){if(s[i].sums[j].sum){s[i].ranks[j].rank;}}}for(int i0;in;i){printf(序号%d\t学号%s\t姓名%s\t语文%.2lf\t数学%.2lf\t英语%.2lf\t总分%.2lf\n,s[i].rank,s[i].id,s[i].name,s[i].chinese,s[i].math,s[i].english,s[i].sum);fprintf(fp,序号%d\t学号%s\t姓名%s\t语文%.2lf\t数学%.2lf\t英语%.2lf\t总分%.2lf\n,s[i].rank,s[i].id,s[i].name,s[i].chinese,s[i].math,s[i].english,s[i].sum);}if(fclose(fp)!0)printf(关闭文件错误\n);return 0;
}001 wang 90 70 90
002 ming 70 95 70
003 gao 60 85 90
004 zhang 60 80 80
005 cai 60 85 80模拟选举
编程模拟选举过程。假定 4 位候选人 zhang、wang、li、zhao代号分别为 1、2、3、4。选举人直接键入候选人代号1~4之外的整数视为弃票权-1为终止标志。打印各位候选人的得票以及当选者得票数超过选票总数一半的名单。
#include stdio.hint main()
{int v,abandon0,count0;char name[4][10]{zhang, wang, li, zhao};char vote[4]{0};while(v!-1){printf(请选择: 1-zhang, 2-wang, 3-li, 4-zhao\n);scanf(%d,v);switch(v){case 1 : vote[0];break;case 2 : vote[1]; break;case 3 : vote[2]; break;case 4 : vote[3]; break;default : abandon; break;}count;}for(int i0;i4;i){printf(%s - %d\n,name[i],vote[i]);}printf(当选者名单);for(int i0;i4;i){if(vote[i]count/2){printf(%s\n,name[i]);}}return 0;
}
大小写字符转换
#include stdio.hint main()
{char ch;printf(请输入一个字符);scanf(%c,ch);if(cha chz){ch-32;printf(%c\n,ch);}else if(chA chZ){ch32;printf(%c\n,ch);}else{printf(输入的不是大写或者小写字母\n);}return 0;
}
完数 编程求 1000 之内的所有 ”完数“。所谓 ”完数“ 是指一个数恰好等于它的包括 1 在内的所有不同因子之和。例如6 是完数因为 6 1 2 3。
#includestdio.hint f(int n){int sum 0;for (int i 1;in;i) {if (n % i 0) sum i;}if (sum n) return 1;return 0;
}int main() {for(int i1;i1000;i){if(f(i))printf(%d ,i);}return 0;
}最大公约数、最小公倍数
#includestdio.hint main() {int m,n,r0,p0,temp;printf(请输入);scanf(%d %d,m,n);if(mn){tempn;nm;mtemp;}pm*n;while(n){rm%n;mn;nr;}printf(最大公约数为%d,最小公倍数为%d,m,p/m);return 0;
}字符串反序
#includestdio.h
#includestring.hvoid inverse(char str[]){char t;int i,j;for(int i0,jstrlen(str);i(strlen(str)/2);i,j--){tstr[i];str[i]str[j-1];str[j-1]t;}
}int main() {char str[100];printf(请输入字符串);scanf(%s,str);inverse(str);printf(输出字符串为%s,str);return 0;
} 以上属个人见解。 ❤️整理不易希望对您有帮助您的支持是我创作最大的动力