十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include cstdio
十年建站经验, 网站设计、成都网站设计客户的见证与正确选择。成都创新互联公司提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。
void menu(){
printf("1.求两个数的和\n");
printf("2.求两个数的差\n");
printf("3.求两个数的积\n");
printf("4.求两个数的商\n");
printf("5.求两个数的余\n");
}
int add(int x,int y){return x+y;}
int sub(int x,int y){return x-y;}
int mul(int x,int y){return x*y;}
int drv(int x,int y){return x/y;}
int mod(int x,int y){return x%y;}
int main(){
int a,b,n;
printf("Please input 2 numbers:");
scanf("%d%d",a,b);
menu();
printf("Please input the number:");
scanf("%d",n);
switch(n){
case 1:printf("%d\n",add(a,b));break;
case 2:printf("%d\n",sub(a,b));break;
case 3:printf("%d\n",mul(a,b));break;
case 4:printf("%d\n",drv(a,b));break;
case 5:printf("%d\n",mod(a,b));break;
default:printf("Wrong number!");
}
}
望采纳
代码:
# include stdio.h
# includestdlib.h
char stu_no[10][10];
int c_math[10],c_en[10],c_computer[10],point[10],average[10];
int i,j,max;
char c;
void input()
{
for(i=0;i=9;i++) /*输入学生成绩*/
{
printf("请输入学号:");
scanf("%s",stu_no[i]);
printf("\n请输入数学成绩:");
scanf("%d",c_math[i]);
printf("\n请输入英语成绩:");
scanf("%d",c_en[i]);
printf("\n请输入计算机基础成绩:");
scanf("%d",c_computer[i]);
}
for(i=0;i=10;i++) /*计算总分跟平均分*/
{
point[i]=c_math[i]+c_en[i]+c_computer[i];
average[i]=point[i]/3;
}
}
void paixu()
{
printf("成绩按从高到低排列为:\n");
printf("\n学号 数学 英语 计算机基础 总分 平均分\n");
for (i=0;i=10;i++)
{ for(j=1;j=10;j++)
if (point[i]point[j])
max=i;
printf("%s,d,%d,%d,%d,%d,%d\n",stu_no[max],c_math[max],c_en[max],c_computer[max],point[max],average[max]);
}
}
void main()
{
input();
paixu();
}
#include math.h
int primeNum(int p)
{
int i, q;
/* Negative number is not a prime */
if (p 0)
return 0;
q = (int) sqrt(p);
for (i = 2; i q; i++)
if ((p % i) == 0)
return 0;
/* No factor of p is found */
return 1;
}
/*原理::
从2-sqrt(x)的数中看是否有可以整除的, 如果没有, 则为素数.
*/
五、 课程设计小结心得体会
1设计思想
1)、设定一个一维数组,可先按员工序号设定每位员工的工资
2)、利用While语句和Prinft语句完成用户菜单的设计
功能为:第1项 设为员工编号和工资数据
第2项 设为修改员工工资数据
第3项 设为查询员工工资数据
第4项 设为结束系统
3)、当用户选择1、2项时,需输入员工编号,所以需要设计编号校正功能,如果出错可输出“The error employe number”
4)、当选择2时,进行工资数据的修改,并将新数据存回该员工的工资数组中
5)、利用for循环中判断语句,将用户工资数与数组中的工资数进行比较,如相同则输出,将计数器加1,如此下去,直到把整个数组遍历一遍
6)、判断计数器是否为0, 是0表示找不到相符的工资,如果不为0,则输出共查出几比相符的工资
以上当然里面也涉及了“函数的模块化”理念,可以避免但需要重复打印头文件时重复编写打印信头的语句。像这样的程序是多见的,这样不但降低了程序还发效率,而且耗时浪费资源“共用体”的使用简化了程序的“复杂”性,正如(4)中,学号与姓名同时表示一个人,但在函数使用了“共用体”,从而程序的简单可以便于纠错,查找问题,避免了代码的重复,这样就给编译时带来了一定的难度与“量”的繁杂。一般不采取这样的做法,力求“简单、明了、清晰”。
只是个例子,不可照抄。
实验内容与要求:
[实验内容]
1、 通过本试验初步培养计算机逻辑解题能力。熟练掌握赋值语句和if语句的应用;掌握switch多路分支语句和if嵌套语句的使用
2、 将前期所学习到的基本数据类型、运算符和表达式等程序设计基础知识运用于具体的程序设计。
3、 进一步熟练掌握输入输出函数scanf, printf和getchar的使用,熟悉math.h中常用数学函数的使用方法
4、 掌握循环语句的应用方法。
5、 了解随机数生成函数。
[实验要求]
在规定期限独立完成实验内容
1、 提交实验报告(电子版)
2、 提交相应源程序文件(文件名 EX6_x姓名.c, 如EX6_1彭健.c)
3、 要求从简单到复杂,后面的要求均在前面的基础上进行修改,前六题,每题均需要保留各自的程序,六题以后,每题均在前一题基础上修改,保留最后一个程序即可(如做到第九题,则保留EX6_9姓名.c,做到第11题,则保留ex6_11姓名.c)
二、实验原理和设计方案:
1、函数头的选则,while循环语句,switch(case)语句,条件表达式,if else条件语句,自增运算符,设置复杂变量,输出随机操作数。
2、 变量要有分数变量和等级变量,要有选择算法题数的变量和计算正确与否的变量,要有随机输出的两个操作数变量和自己按运算符号输入结果的变量,最后还有判断是否要进行的变量字符。中间结果有选择运算符的switch()和分数等级的switch()和错题对题的自增和选择运算符计算的自增。
3、 问题的分析方法:先考虑设置整形变量和字符变量,考虑到要不断循环计算,选择用while语句来循环。在循环体中,将前面的输出提示运算符,和自行选择运算符、答案及输出随机操作数完成。再用switch语句对选择的运算符进行判断,并用变量进行自增运算,计算出错题于对题个数和选择了那种运算符号。在循环体最后用if else语句来判断是否继续执行还是跳出循环。最后根据自增计算的结果和公式进行分数计算,并用switch语句来是想等级的制定。
三、源代码
#includestdio.h
#includestdlib.h
#includetime.h
void main()
{
..........
}
四、试验结果和启发
因为输入y要继续循环,所以选择用while语句。在while语句中要结合前面的按提示计算,并嵌套switch语句并用条件表达式,来计算结果正确与否,计算的题型是什么。最后再用switch语句来完成分数等级的判断。
五、实验体会:
描述自己在编程或程序编译运行中遇到的难点和问题及解决的办法。
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
void cut();
void in();
void display();
int keep();
int enter();
struct msg
{
int num;
char name[20];
float score1;
float score2;
float score3;
double ave;
}
main()
{
struct msg student[10];
int i,n=0,k,m;
printf("请输入学员信息.\n");
n=enter(student);
printf("\n排序前学员信息如下:\n");
printf("\t学号 \t姓名 \t平均成绩\n");
for(i=0;in;i++)
printf("\t%d \t%s \t%f\n",student[i].num,student[i].name,student[i].ave);
printf("\n");
printf("\n排序后学员信息如下:\n");
display(student,n);
printf("\n\n是否要插入新学员?y or n");
k=keep();
if(k==0) exit(k); //如果输入的不是y退出程序
else
{
in(student,n);
}
printf("\n\n是否要删除某个学员?y or n");
k=keep();
if(k==0) exit(k);
else
{
m=n+1; //之前插入了一个学生,所以数组增加1
cut(student,m);
}
}
int keep() //是否继续条件判断函数
{
char ans;
fflush(stdin);
ans=getchar();
if (ans=='y')
return 1;
else
return 0;
}
int enter(struct msg student[10]) //录入结构数据函数
{
int i,k,n=0;
for(i=0;;i++)
{
student[i].num=i+1;
printf("\n学号:%d\n",student[i].num);
printf("姓名: ");
fflush(stdin);
gets(student[i].name);
if(i==0) printf("\n三门成绩:\n");
printf("成绩1:");
scanf("%f",student[i].score1);
printf("成绩2:");
scanf("%f",student[i].score2);
printf("成绩3:");
scanf("%f",student[i].score3);
student[i].ave=(student[i].score1+student[i].score2+student[i].score3)/3.0;
n++;
printf("是否要继续?y or n");
k=keep();
if(k==1)
continue;
else
{
break;
}
}
return n;
}
void display(struct msg student[],int n) //排序函数,多次调用
{
int i,j,temp1;
char temp2[20];
double temp;
printf("\t学号 \t姓名 \t平均成绩\n");
for(i=0;in;i++)
{
for(j=0;jn-i-1;j++)
{
if(student[j].avestudent[j+1].ave)
{
temp=student[j].ave;
student[j].ave=student[j+1].ave;
student[j+1].ave=temp;
temp1=student[j].num;
student[j].num=student[j+1].num;
student[j+1].num=temp1;
strcpy(temp2,student[j].name);
strcpy(student[j].name,student[j+1].name);
strcpy(student[j+1].name,temp2);
}
}
}
for(i=0;in;i++)
printf("\t%d \t%s \t%f\n",student[i].num,student[i].name,student[i].ave);
}
void in(struct msg student[],int n) //插入函数
{
int k;
k=n+1;
printf("\n请输入要插入学员的信息\n");
student[n].num=k;
printf("\n学号:%d\n",student[n].num);
printf("姓名:");
fflush(stdin);
gets(student[n].name);
printf("\n三门成绩:");
printf("\n成绩1:");
scanf("%f",student[n].score1);
printf("成绩2:");
scanf("%f",student[n].score2);
printf("成绩3:");
scanf("%f",student[n].score3);
student[n].ave=(student[n].score1+student[n].score2+student[n].score3)/3.0;
printf("\n插入新学员后学员的信息如下\n");
display(student,k);
}
void cut(struct msg student[],int n)//删除函数
{
int i,k1,j,m;
printf("输入要删除的学员的学号:");
scanf("%d",k1);
for(i=0;in;i++)
{
if(student[i].num==k1)
break;
}
for(j=i;jn-1;j++)
{
student[j].num=student[j+1].num;
strcpy(student[j].name,student[j+1].name);
student[j].ave=student[j+1].ave;
}
m=n-1;
printf("\n删除后学员的信息如下:\n");
display(student,m);
}
这个也是和你差不多的学生成绩设计,对其进行排序,删除,添加,研究一下你那个应该就差不多了