C语言设计问题!

作者&投稿:肥万 (若有异议请与网页底部的电邮联系)
C语言程序设计问题!!~

#include int main(){ double r=0; int n,i; scanf("%d",&n); for(i=1;i<=n;i++) r+=(i+1.0)/i; printf("%lf
",r); return 0;}


测试过,没错啊

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <conio.h>
#define ESC 0x1b; //ESC的ASCII码是0x1b。
#define N 100
char choice='y';
int count=0;
int i=0;
struct student
{
int ID;
char name[20];
double score1;
double score2;
double score3;
double average;
}stud[N+1],s[N];
void printstar()
{
for(i=0;i<80;i++)
{
printf("*");
}
printf("\n");
}
void time()
{
for(i=0;i<3.3e08;i++);
}

void login()//用户登陆
{
char name[15],pwd[15],c;
printf("\n\n\t\t\t\t用户登陆\n\n");
printf("\t\t用户名:");
gets(name);
printf("\n\t\t密码:");
c = getch();
while(c != '\r')
{
if(i >= 0)
{
if (c == '\b')
{
printf("\b \b");
i = i - 1;
}
else
{
printf("*");
pwd[i] = c;
}
}
c = getch();
if(c != '\b')
i = i + 1;
}
pwd[i] = '\0';
if((strcmp(name,"little boy")==0)&&(strcmp(pwd,"123456")==0))
printf("\n\n登陆成功!\n");
else
printf("\n\n登陆失败!\n");
}

void input() //录入数据
{
FILE * fp;
if((fp=fopen("stu.dat","rb"))==NULL)
{
fp=fopen("stu.dat","w");
}
else
{
fp=fopen("stu.dat","ab");
}
system("cls");
do
{
printf("\n\t\t\t\t学生信息录入\n");
printstar();
printf("\n学号:");
scanf("%d",&stud[i].ID);
printf("\n姓名:");
scanf("%s",stud[i].name);
printf("\n三门课成绩分别为:");
scanf("%lf %lf %lf",&stud[i].score1,&stud[i].score2,&stud[i].score3);
stud[i].average=(stud[i].score1+stud[i].score2+stud[i].score3)/3;
printf("\n平均成绩为:%3.1lf\n",stud[i].average);
fwrite(&stud[i],sizeof(struct student),1,fp);
count++;
fflush(stdin);
printf("是否继续录入(y/n)?");
scanf("%c",&choice);
system("cls");
if(choice!='y'&&choice!='n')
{
printstar();
printf("\n\t您输入了非法字符,请重新输入!\n\n");
printstar();
time();
}
printf("\n");
}while(choice=='y');
fclose(fp);
}

void browse() //浏览
{
system("cls");
FILE * fp;
fp=fopen("stu.dat","rb");
printf("\n\t\t\t\t学生信息浏览\n\n");
printstar();
for(i=0;i<count;i++)
{
fread(&stud[i],sizeof(struct student),1,fp);
printf("\t学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("\t%d %s %4.1lf %4.1lf %4.1lf %4.1lf\n",stud[i].ID,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3,stud[i].average);
}
}

void byID() //按学号查询
{
int ch_ID;
FILE * fp;
fp=fopen("stu.dat","rb");
system("cls");
printf("\n\n\t\t输入学号:");
scanf("%d",&ch_ID);
if(ch_ID==stud[i].ID)
{
fread(&stud[i],sizeof(struct student),1,fp);
printf("\t学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("\t%d %s %4.1lf %4.1lf %4.1lf %4.1lf\n",stud[i].ID,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3,stud[i].average);
}
fclose(fp);
}

void byname() //按姓名查询。
{
char ch_name[20];
FILE * fp;
fp=fopen("stu.dat","rb");
system("cls");
printf("输入姓名:");
scanf("%d",ch_name);
if(strcmp(ch_name,stud[i].name)==0)
{
fread(&stud[i],sizeof(struct student),1,fp);
printf("\t学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("\t%d %s %4.1lf %4.1lf %4.1lf %4.1lf\n",stud[i].ID,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3,stud[i].average);
}
fclose(fp);
}

void query() //查询函数
{
int choose;
system("cls");
do
{
//system("cls");
printf("\n\t\t\t\t学生信息查询\n\n");
printstar();
printf("________________________________________________________________________________\n");
printf("\t\t\t\t1.〖按学号查询〗\n\n");
printf("\t\t\t\t2.〖按姓名查询〗\n\n");
printf("\t\t\t\t3. 〖返回〗\n");
printf("________________________________________________________________________________\n");
printf("\t\t请选择:");
scanf("%d",&choose);
switch(choose)
{
case 1:
byID();
break;
case 2:
byname();
break;
case 3:
return;
}
if(choose!=1 && choose!=2 && choose!=3)
printf("选择错误!");
}while(choose!=1 && choose!=2);
}

void update() //修改学生信息
{
FILE * fp;
fp=fopen("stu.dat","rb+");
system("cls");
printf("\n\t\t\t\t学生信息修改\n\n");
printstar();
printf("\t\n输入要修改信息的学生学号:");
scanf("%d",&stud[i].ID);
fread(&stud[i],sizeof(struct student),1,fp);
printf("\n修改前的数据:\n");
printf("\t学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("\t%d %s %4.1lf %4.1lf %4.1lf %4.1lf\n",stud[i].ID,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3,stud[i].average);

fclose(fp);
}

void del() //信息删除函数
{
FILE * fp;
int del_ID;
char choose='Y';
fp=fopen("stu.dat","rb");
system("cls");
printf("\n\t\t\t\t学生信息删除\n\n");
if(count==0)
{
printstar();
printf("\n\n\t\t\t您的学生数据库中无任何记录!\n\n\n");
printstar();
return;
}
do
{
printf("\t\n输入要删除信息的学生学号:");
scanf("%d",&del_ID);
if(del_ID==stud[i].ID)
{
fread(&stud[i],sizeof(struct student),1,fp);
printf("\t学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("\t%d %s %4.1lf %4.1lf %4.1lf %4.1lf\n",stud[i].ID,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3,stud[i].average);
printf("\n\n您确定要删除%d号学员的信息吗(Y/N):");
scanf("%c",&choose);
if(choose=='Y')
{
for(i=0;i<count-1;i++)
{
stud[i]=stud[i+1];
count--;
}
printf("\n删除后的全体学员信息:\n");
for(i=0;i<count;i++)
{
fread(&stud[i],sizeof(struct student),1,fp);
printf("\t学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("\t%d %s %4.1lf %4.1lf %4.1lf %4.1lf\n",stud[i].ID,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3,stud[i].average);
printf("\n\n\t\t\t按ESC返回\n\n");
}
}
else
return;
}
else
printf("\n\n对不起,不存在%d号学员的信息.");
}while(choice=='y');
fclose(fp);
}

void sort_ID() //按学号排序
{
FILE * fp;
int j=0,temp=0;
fp=fopen("stu.dat","rb");
for(i=0;i<count;i++)
{
for(j=0;j<count-i-1;j++)
{
if(stud[j].ID>stud[j+1].ID)
{
temp=stud[j].ID;
stud[j].ID=stud[j+1].ID;
stud[j+1].ID=temp;
}
}
}
system("cls");
printf("\n\t\t\t\t按学号排序后的列表\n\n");
for(i=0;i<count;i++)
{
fread(&stud[i],sizeof(struct student),1,fp);
printf("\t学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("\t%d %s %4.1lf %4.1lf %4.1lf %4.1lf\n",stud[i].ID,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3,stud[i].average);
}
fclose(fp);
}

void sort_ave() //按平均分排序
{
FILE * fp;
int j=0;
double temp=0;
fp=fopen("stu.dat","rb");
for(i=0;i<count;i++)
{
for(j=0;j<count-i-1;j++)
{
if(stud[j].average>stud[j+1].average)
{
temp=stud[j].average;
stud[j].average=stud[j+1].average;
stud[j+1].average=temp;
}
}
}
system("cls");
printf("\n\t\t\t\t按平均分排序后的列表\n\n");
for(i=0;i<count;i++)
{
fread(&stud[i],sizeof(struct student),1,fp);
printf("\t学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
printf("\t%d %s %4.1lf %4.1lf %4.1lf %4.1lf\n",stud[i].ID,stud[i].name,stud[i].score1,stud[i].score2,stud[i].score3,stud[i].average);
}
fclose(fp);
}

void sort() //排序函数
{
int choose;
system("cls");
do
{
system("cls");
printf("\n\n\n\t\t\t\t学生信息排序\n\n");
printstar();
printf("\t\t\t\t1.〖按平均分排序〗\n\n");
printf("\t\t\t\t2. 〖按学号排序〗\n\n");
printf("\t\t\t\t3. 〖返回〗\n\n");
printstar();
printf("\t\t\t请选择:");
scanf("%d",&choose);
switch(choose)
{
case 1:
sort_ave();
break;
case 2:
sort_ID();
break;
case 3:
return;
}
}while(choose!=1&&choose!=2&&choose!=3);
}

void logout() //退出程序
{
system("cls");
printf("\n\n\n\t\t\t 您将退出学生信息管理系统!\n\n");
printstar();
printf("\n\n\t\t感谢您使用本管理系统,如有任何问题请与开发者联系\n\n");
printf("\t\t开发者:高志林\t\tE-mail:gaozhi0@163.com\n\n\n\n\n");
printstar();
}

void main()
{
char choice='1';
//login();
system("cls");
do
{
system("cls");
printstar();
printf("\n\t\t\t欢迎使用学生信息管理系统!\n\n");
printstar();
printf("\n\t\t\t\t1.【信息录入】\n");
printf("\n\t\t\t\t2.【信息浏览】\n");
printf("\n\t\t\t\t3.【信息查询】\n");
printf("\n\t\t\t\t4.【信息修改】\n");
printf("\n\t\t\t\t5.【信息删除】\n");
printf("\n\t\t\t\t6.【信息排序】\n");
printf("\n\t\t\t\t7. 【退出】\n");
printf("\n\t\t\t请选择:");
scanf("%c",&choice);
switch(choice)
{
case '1':
input();
break;
case '2':
browse();
break;
case '3':
query();
break;
case '4':
update();
break;
case '5':
del();
break;
case '6':
sort();
break;
case '7':
logout();
break;
default:
printf("输入错误");
}
}while(choice!='1'&&choice!='2'&&choice!='3'&&choice!='4'&&choice!='5'&&choice!='6'&&choice!='7');

}


c语言程序设计简答题汇总?
C语言题目简答题1、(c=65c=90)?(c=c+32):(c=c)\/*符合你的要求,不是C语句,而是C表达式*\/ 2、a%10==5\/*符合你的要求,不是C语句,而是C表达式*\/ 3、【题目不全啊】4、【题目不全啊】5、这个题算是所有6个题中最难的了。首先,fun函数中定义了一个static类型的变量,含义如下:有...

如何设计语言问题?
语篇的问题设计可以分为以下几种类型:1、主题问题(Topical Questions):主题问题旨在确定语篇的主题或主要内容。例如,文章或演讲的主题是什么?作者的主要论点是什么?这段文本主要讨论了哪些问题?2、结构问题(Structural Questions):结构问题旨在理解语篇的总体结构或组织。例如,这段文本的结构是什么?

计算机二级C语言程序设计的问题?
A52是以下面的数(5)开始乘4乘3……所乘数的个数为上面的数(2)。如A73=7×6×5=210 2、C52=A52÷2!,即这个组合数(C52)的排列数(A52)除以上面那个数(2)的阶乘(2×1).如C73=A73÷3!=(7×6×5)÷(3×2×1)=35 另外,C52=C53,即若两数之和为下面那个数(m+...

c语言程序设计问题
先看i:i=15; m=(i++)+(i++)+(i++); 可以化解为: m=i+i+i; i++; i++; i++;从左至右执行。这是c语音的执行顺序。得 m=45;在看j:j=20; n=(--j)+(--j)+(--j);可以化解为:看计算机先后执行顺序:先算第一个--j,再算第二个--j,在算第一个加号,再...

C+高级语言程序设计问题???
第一题 include "stdio.h"main(){int x=100;printf("%d",x++>100?x+20:x+10);} 结果: 111 原因:x++ 其中++为后置自加运算 x++>100表达式是0,然后比较后x加了1。选择x+10 。那么答案为:表达式值为111 ,x值为101 第二题 char*s1="12345",*s2="1234";printf("%d\\n",strlen...

c语言课程设计答辩会问些什么问题?
最关键的是老师会找到一些你在设计中出现的问题来问你。有可能回答的出来,也有可能回答不出来,不管哪种,你都需要冷静一些,学会自圆其说,但是不能跟老师犟嘴,知道自己错的前提下尽量回答的圆满,把主要矛盾会比过去。参加答辩的老师也能是一些曾经教过你的老师,不用担心什么,他们基本上不会为难你...

如何设计教学活动中的语言互动
实践中我们发现,教学活动中语言活动设计不合理,不会设计问题,不仅不能调动学生学习的积极性,更难以引导学生进行高质量、富有挑战性的学习。学生只是应付老师提出的一个个机械、无效的问题时。如“是不是”、“对不对”、“好不好”这类问题时,我们教师丧失的不仅是教学的效率,更是幼儿对学习的兴趣...

大学c语言程序设计问题
看了下面的回答,虽然没错,但提问者看起来好像还不是很熟悉C语言,所以我想详细地解释一下。x+=5意思是x=x+5;x-=3的意思是x=x-3。我把你的代码敲好了,每行代码右边的绿字是注释,黑色窗口里是x和y的最终结果:整个过程一共循环了四次,下面是每次循环要执行的过程。第一次循环:x=1,...

用Python语言设计程序,5道题,谢谢!
第一题,用input()接受用户输入,int()把输入转换成整型,if... else语句判断条件。能被2整除的是偶数,否则奇数 代码:n = int(input())if n % 2 == 0:..#前面的点表示缩进。..print("是偶数")else:..print("是奇数")第二题input()、int()和嵌套if语句 代码:n = int(input())...

C语言程序设计有关问题!
1: 要是main函数返回值是int型的,那就要return 0或者其他数字。要是是void main(){}的话,就不用填,或者return退出。2:你的1E2是浮点数,所以是100.0。 要是是整形的话,就是100了 3:是“1.23450E+2”而不是“1.2345E+2”的原因是浮点数可以精确小数点后5位。要是只想输出1.2345...

大邑县18338124338: c语言程序设计问题问题:输出2到N之间的质数.问题分析:要求输出2到N之间的质数,程序需要做的就是从2开始依次找,判断是否是质数,若是则打印... -
东方英头孢:[答案] 关键是要有思路.质数是只能被1和自己整除.也就是说从1开始到它本身整除的次数只能是两次,超过两次的都不是质数.外层循环2到N,内层循环从1到数的本身.计数器等于2就打印.记得计数器重置.书籍推荐C Primer Plus,值得拥有. #...

大邑县18338124338: c语言程序设计问题 -
东方英头孢: 第一个for后的{ }位置错误,没有把后面的完整循环内容连结成块,正确的位置为 for(...) { z=0;...}

大邑县18338124338: c语言设计问题 -
东方英头孢: #includevoid main () { time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); printf ( "\007The current date/time is: %s", asctime (timeinfo) ); exit(0); }=================#include-- 必须的时间函数头文件 time_...

大邑县18338124338: C语言设计的一个问题 -
东方英头孢: 显然老师的话被你们片面理解了.我想老师的意思是讲 if (getchar()==...) 在这里的用法,而不是讲 getchar()的普遍用法.每调用一次getchar(),就读入了一次健入,第二次调用getchar(), 则读第二次键入.所以当程序执行 if (getchar()==...

大邑县18338124338: C程序设计问题 -
东方英头孢: 是在vc下吗,你的项目类型建错了,应当建立“Win32 console Application”,建立一个空项目,...

大邑县18338124338: C语言程序设计的问题 -
东方英头孢: 看了下面的回答,虽然没错,但提问者看起来好像还不是很熟悉C语言,所以我想详细地解释一下. x+=5意思是x=x+5;x-=3的意思是x=x-3. 我把你的代码敲好了,每行代码右边的绿字是注释,黑色窗口里是x和y的最终结果: 整个过程一共循环了四次,下面是每次循环要执行的过程.第一次循环: x=1,y=1 x=x+5=1+5=6 第二次循环: x=x-3=6-3=3 第三次循环: x=x+5=3+5=8 第四次循环: 此时x等于8,结束循环 最终x等于8,y等于4.

大邑县18338124338: C语言程序设计问题(4)
东方英头孢: 是45的,i=0时,while语句是while(0<7),之后i++后i就变为i=1了,再执行if(p[1]%2),也就是说,它跳过p[0]了,没有加到p[0].你算出来的56是加上p[0]了,所以要减去p[0],56-11=45.所以书上说的是对的.

大邑县18338124338: C语言程序设计基础的一些小问题
东方英头孢: 1.算法过程可以是无数据输入是说可以不需要进行输入操作. 2.复数解是比较全面的,如果你还没学过复数,你就可以认为无解(其实确切的说是无实数解),如果要了解,这个是数学上的问题,不是编程的问题了. 3.Y表示yes,条件成立,N表示no,表示条件不成立 4.素数又叫质数,是不能被除了1和它本身外别的数整除的数.如7,除了1和7本身,就不能被别的数整除了

大邑县18338124338: 关于C语言程序设计的小问题 -
东方英头孢: 做一个for循环 for(int i=x.length; i>0 ;i--) { printf("%d",x[i]); } 不好意思 我是学java的 c都忘了 意思就是 先获得数组的长度 然后从循环的最后边开始往前取 这样就行了 你自己改改弄成C的吧 - -

大邑县18338124338: c语言程序设计,入门遇到的问题 -
东方英头孢: t=a意思是把a的值赋给t,a=b意思是把b的值赋给a,b=t意思是把t的值赋给b,其实就是a、b的值互换

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网