#include<stdio.h> #include<math.h> #define PI 3.1415926 int main() { const double mp=981.0;//密度 const double g=9.8;//重力加速度 const double nl=1.83e-5;//粘滞系数 const double b=6.17e-6;//修正常数 const double p=76.0;//空气压力 const double d=5.00e-3;//平行板的距离 const double l=0.0015;//下落的距离 const double e=1.602e-19;// int i; double V,T[9]; double q[9],q1,q2,q3,n[9],a,sumq=0,sumn=0,sume=0; char ch; q: while(1) { printf("请输入V:"); scanf("%lf",&V); printf("V=%f,请输入10个T(按q退出重新输入V):",V); while(1) { while((ch=getchar())=='q') goto q; for(i=0;i<10;i++) { scanf("%lf",&T[i]); a=sqrt((9*nl*l)/(2*mp*g*T[i])); q1=18.0*PI/(sqrt(2.0*mp*g)); q2=(nl*l)/(T[i]*(1+b/(p*a))); q[i]=q1*pow(q2,3.0/2.0)*d/V; n[i]=q[i]/e; printf("/n"); printf("q的值是:%g/n",q[i]); printf("n的值是:%g/n",n[i]); printf("n去掉小数点后为:%d/n",(int)n[i]); printf("e的值为:%g/n",(double)(q[i]/(int)n[i])); } for(i=0;i<10;i++) { sumq+=q[i]; sumn+=(int)n[i]; sume+=(double)(q[i]/(int)n[i]); } printf("q的平均值为;%g/n",sumq/10.0); printf("n的平均值为:%g/n",sumn/10); printf("n的平均值为;%g/n",sume/10.0); printf("V=%f,请输入T:",V); } } return 0; } #include<stdio.h> #define CSIZE 4 struct name { char fname[20]; char lname[20]; }; struct student { struct name names; float grade[3]; float ave; }; int main(void) { int i=0,count=0,index,c; double sum; struct student students[CSIZE]; //获取结构的内容 printf("请输入学生的姓/n"); printf("或是输入一个空行退出/n"); while(count < CSIZE && gets(students[count].names.fname) != NULL && students[count].names.fname[0] != '/0') { printf("请输入学生的名/n"); gets(students[count].names.lname); for(i = 0; i < 3; i++) { printf("请输入学生的成绩%d/n",i + 1); scanf("%f",&students[count].grade[i]); } while(getchar() != '/n') continue; count++; if(count < CSIZE) { printf("请输入下一个学生的姓:/n"); printf("或是输入一个空行退出/n"); } } //计算分数平均值 for(c = 0; c < CSIZE; c++) { for(i = 0; i < 3; i++) sum += students[c].grade[i]; students[c].ave = sum / 3.0; sum = 0; } //显示结构的内容 if(count > 0) { printf("你输入的学生成绩列表如下:/n"); for(index = 0; index < count; index++) { printf("%s %s ",students[index].names.fname, students[index].names.lname); for(i = 0; i < 3; i++) { printf(" 成绩 %f",students[index].grade[i]); } printf("/n"); } } } /*位运算显示二进制数*/ #include<stdio.h> char * itobs(int,char *); void showBstr(const char *); int main(void) { char bin_str[8 * sizeof(int) + 1]; int number; puts("enter the integers and see them in binary."); puts("Non-numeric input terminates program."); while((scanf("%d",&number)) == 1) { itobs(number,bin_str); printf("%d is ",number); showBstr(bin_str); putchar('/n'); } puts("Bye!"); return 0; } char *itobs(int n, char *ps) { int i; static int size = 8 * sizeof(int); for(i = size - 1; i >= 0; i--, n>>=1) { ps[i] = (01 & n) + '0'; } ps[size] = '/0'; return 0; } void showBstr(const char *str) { int i = 0; while(str[i]) { putchar(str[i]); if(++i % 4 == 0 && str[i]) putchar(' '); } }