实验数据处理C语言源代码
数据结构上机实验源代码
数据结构上机实验源代码栈的应用十进制数转换为八进制数,逆序输出所输入的数实验代码://stack.h,头文件class stack{public:stack();bool empty()const;bool full()const;error_code gettop(elementtype &x)const;error_code push(const elementtype x);error_code pop();private:int count;elementtype data[maxlen];};stack::stack(){count=0;}bool stack::empty()const{return count==0;}bool stack::full()const{return count==maxlen;}error_code stack::gettop(elementtype &x)const{if(empty())return underflow;else{x=data[count-1];return success;}}error_code stack::push(const elementtype x){if(full())return overflow;data[count]=x;count++;return success;}error_code stack::pop(){if(empty())return underflow;count--;return success;}//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"stack.h"void read_write() //逆序输出所输入的数{stack s;int i;int n,x;cout<<"please input num int n:";cin>>n;for(i=1;i<=n;i++){cout<<"please input a num:";cin>>x;s.push(x);}while(!s.empty()){s.gettop(x);cout<<x<<" ";s.pop();}cout<<endl;}void Dec_to_Ocx(int n) //十进制转换为八进制{stack s1;int mod,x;while(n!=0){mod=n%8;s1.push(mod);n=n/8;}cout<<"the ocx of the dec is:";while(!s1.empty()){s1.gettop(x);cout<<x;s1.pop();}cout<<endl;}void main(){int n;// read_write();cout<<"please input a dec:";cin>>n;Dec_to_Ocx(n);}队列的应用打印n行杨辉三角实验代码://queue.hclass queue{public:queue(){count=0;front=rear=0;}bool empty(){return count==0;}bool full(){return count==maxlen-1;}error_code get_front(elementtype &x){if(empty())return underflow;x=data[(front+1)%maxlen];return success;}error_code append(const elementtype x){if(full())return overflow;rear=(rear+1)%maxlen;data[rear]=x;count++;return success;}error_code serve(){if(empty())return underflow;front=(front+1)%maxlen;count--;return success;}private:int count;int front;int rear;int data[maxlen];};//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"queue.h"void out_number(int n) //打印前n行的杨辉三角{int s1,s2;int i;int j;int k;queue q;for(i=1;i<=(n-1)*2;i++)cout<<" ";cout<<"1 "<<endl;q.append(1);for(i=2;i<=n;i++){s1=0;for(k=1;k<=(n-i)*2;k++)cout<<" ";for(j=1;j<=i-1;j++){q.get_front(s2);q.serve();cout<<s1+s2<<" ";q.append(s1+s2);s1=s2;}cout<<"1 "<<endl;q.append(1);}}void main(){int n;cout<<"please input n:";cin>>n;out_number(n);}单链表实验实验目的:实验目的(1)理解线性表的链式存储结构。
实验数据处理C语言源代码
实验数据处理C语言源代码#include#include#include#include#define MAX 20typedef struct wuli{float d[MAX];char name[10];int LEN;float ccha[MAX]; /*残差数组*/float avg; /*data的平均值*/double sx; /*标准偏差Sx*/double DU; /*总不确定度*/}wulidata;wulidata *InputData();void average(wulidata *wl);void YCZhi(wulidata *wl);void CanCha(wulidata *wl);void BZPianCha(wulidata *wl);/*标准偏差*/void BQDdu(wulidata *wl);/*总不确定度*/void rage(wulidata *wl);void output(wulidata *wl);/*----------------------------------------------------------*/void line(){int i;printf("\n");for(i=0;i<74;i++)printf("=");printf("\n");}/*-------------------------------------------------------*/wulidata *InputData(){int i=0,k;float da;char Z=0;wulidata *wl;wl=(wulidata *)malloc(sizeof(wulidata));printf("请为你要处理的数据起一个名字:");scanf("%s",wl->name);printf("\n下面请你输入数据%s具体数值,数据不能超过MAX个\n",wl->name);printf("当name='#'时输入结束\n");do{printf("%s%d=",wl->name,i+1);scanf("%f",&da);wl->d[i]=da;i++;if(getchar()=='#') break;}while(wl->d[i-1]!=0.0&&iwl->LEN=i-1;do{printf("你输入的数据如下:\n");for(i=0;iLEN;i++)printf("%s%d=%f\t",wl->name,i+1,wl->d[i]);printf("\n你是否要作出修改(Y/N)?");while( getchar()!='\n');Z=getchar();if( Z=='y'||Z=='Y'){printf("你须要修改哪一个元素,请输入其标号i=(1~%d)\n",wl->LEN);while( getchar()!='\n');scanf("%d",&k);printf("\n%s%d=",wl->name,k);scanf("%f",&(wl->d[k-1]));}else if(Z=='n'||Z=='N')printf("OK!下面开始计算。
C语言程序设计实验及代码
C语言程序设计实验及代码随着计算机技术的快速发展,C语言作为一种高效且强大的编程语言,被广泛应用于软件开发、嵌入式系统以及科学计算等领域。
在学习C语言编程的过程中,进行实验并编写相应的代码是非常重要的一部分,可以帮助我们巩固所学的知识并提高编程能力。
本文将介绍几个常见的C语言程序设计实验,并给出相应的代码示例。
一、实验一:Hello, World!实验目的:熟悉C语言编程环境,掌握简单的编译和运行操作。
实验内容:编写一个简单的程序,在屏幕上输出"Hello, World!"。
代码示例:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```二、实验二:求两个整数的和与差实验目的:学习C语言中的基本数据类型和算术运算符的使用。
实验内容:编写一个程序,输入两个整数并计算它们的和与差,然后输出结果。
代码示例:```c#include <stdio.h>int main() {int num1, num2, sum, diff;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;diff = num1 - num2;printf("两数之和:%d\n", sum);printf("两数之差:%d\n", diff);return 0;}```三、实验三:判断一个数是奇数还是偶数实验目的:学习C语言中的分支语句的使用。
实验内容:编写一个程序,输入一个整数,并判断它是奇数还是偶数,然后输出结果。
代码示例:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。
c语言实验报告参考源代码
实验5三种基本结构的综合应用4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的个数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=100;i<=999;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*三位数是素数时*/{k=i%100; /*去掉百位数字*/if(k>=10) /*十位数字不是0时*/{for(m=2;m<k;m++)if(k%m==0)break;if(m>=k) /*两位数是素数时*/{p=i%10; /*p为个位数字*/for(q=2;q<p;q++)if(p%q==0)break;if(q>=p)n++;}}}}printf("%d\n",n);}Key:575.求[2,400]中相差为10的相邻素数对的对数。
#include "stdio.h"main(){int i,j,k,m,p,q,n=0;for(i=2;i<=400;i++){for(j=2;j<i;j++)if(i%j==0)break;if(j>=i) /*i是素数时*/{for(k=i+1;k<i+10;k++){for(m=2;m<k;m++)if(k%m==0)break;/*k不是素数时终止if语句的内层循环*/if(m>=k)break;} /*k是素数时终止if语句的外层循环*/if(k>=i+10) /*[i+1,i+9]不是素数时*/{for(q=2;q<k;q++)if(k%q==0)break;if(q>=k) /*i+10是素数时*/n++;}}}printf("%d\n",n);}Key:56.求[1,21]范围内的梅森尼数#include "math.h"main(){long n,k=2,m,p,q;for(n=2;n<=21;n++){ k=k*2; p=k-1;m=sqrt(p);for(q=2;q<=m;q++)if(p%q==0) break;if(q>m) printf("%5ld",n);}}Key: 2 3 5 7 13 17 197.求1000以内的亲密数对main(){int a,b,n,m,q,p;for(a=1;a<1000;a++){n=0;for(q=1;q<=a/2;q++)if(a%q==0) n+=q;for(b=a;b<=1000;b++){ m=0;for(p=1;p<=b/2;p++)if(b%p==0) m+=p;if(a==m&&b==n) printf("%5d%5d",a,b);}}}/*Key:6 6 28 28 220 284 496 496*/实验6 数组及其应用3.由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。
c语言实验报告三答案(完整版)
实验三循环控制实验课程名:高级语言程序设计(C)专业班级:学号:姓名:实验时间:实验地点:指导教师:一、实验目的和要求1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。
2. 掌握在程序设计中用循的方法实现一些常用算法。
并进一步学习调试程序的方法。
二、实验内容1、任务名称程序c40101.c求1+…+100,填空,实现该功能。
(1、)源代码:#include<stdio.h>int main(){int s,i;s=0;for(i=1;i<=100;i++)s=s+i;printf("1+2+...+100=%d\n",s);return 0;}运行结果:(需要截图)(2、)源代码:#include<stdio.h>int main(){int s=0,i=1;while(i<=100){s+=i;i++;}printf("1+2+...+100=%d\n",s);return 0;}运行结果:运行结果分析:2、任务名称:分别运行这两个程序,若输入7,这两个程序的结果分别是多少?若输入12,这两个程序的结果又分别是多少?比较为什么会有这样的区别?(1、)源代码:#include <stdio.h>void main(){ int i,n,sum=0;scanf("%d",&i);n=i;while(i<=10){ sum+=i;i++;}printf("%d+...+10=%d\n",n,sum);}运行结果:(需要截图)(2、)源代码:#include <stdio.h>int main(){ int i,n,sum=0;scanf("%d",&i);n=i;do{ sum+=i;i++;} while(i<=10);printf("%d+...+10=%d\n",n,sum);return 0;}运行结果:运行结果分析:3、任务名称:下面程序,若输入12345,分析输出结果是多少?源代码:#include <stdio.h>void main( ){ long data;scanf("%ld",&data);while(data){ printf("%ld,",data%10);data=data/10;}}运行结果:(需要截图)运行结果分析:4、任务名称:程序c40104.c 实现求Fibonacci 数列的前n 个数。
C语言程序设计实验指导(源代码)
《C语言程序设计》实验源程序代码目录实验二顺序结构程序设计(上) (2)实验三顺序结构程序设计(下) (2)实验四选择结构程序设计(上) (4)实验五选择结构程序设计(下) (4)实验六循环结构程序设计(上) (5)实验七循环结构程序设计(下) (6)实验八函数 (8)实验九数组(上) (9)实验十数组(下) (11)实验十一指针的应用 (12)实验十二结构体 (14)实验十三文件操作 (17)实验二顺序结构程序设计(上)//1-1void main(){ int a=1;printf("1:%d\n", sizeof(a));printf("2:%d\n", sizeof(float));printf("3:%d\n", sizeof(2.0*10));printf("4: %d\n", sizeof("Liu Dehua"));}//1-2-------------------------------------------------------- #include <stdio.h>void main(){ int a1=65,a2,a3;char ch='A'+1;printf("1:\101 \x42 C\n");printf("2:I say:\"How are you?\"\n");printf("3:\t\\\\Display Hello! I am Tom\b!\n");printf("4:65/10=%d,65%%10=%d\n",65/10, 65%10);printf("5:a1=%d,a1=\'%c\'\n",a1,a1);printf("6:ch=%c,ch=%d\n",ch,ch);a2=2,a3=(a1=3,a2+=a1,a1*a2);printf("7:a1=%d,a2=%d,a3=%d\n",a1,a2,a3);a3=a2=a1=2;printf("8:%d,%d,%d\n",(a1,a2+1),a3+2,a1+a2+a3);}//2------------------------------------------------------------#include <stdio.h>void main(){ float c,f;printf("请输入一个华氏温度:\n");scanf("%f",f);c==(5/9)*(f-32);printf("摄氏温度为:%5.2f\n"c);}实验三顺序结构程序设计(下)//1-1#include "stdio.h"void main(){ char ch=65;int a=1234;long g=12345678;float f=123.456789f;double d=9.876543E2;printf("1:%d,%c,%5d,%3c\n",ch,ch,ch,ch);printf("2:%8d,%-8d,%o,%x\n",a,a,a,a);printf("3:%10.3f,%f,%e\n",f,f,f);printf("4:%-10.2lf,%lf,%le\n",d,d,d);printf("5:%10s,%10.3s\n","Hello,world!","Hello,world!");}//1-2#include <stdio.h>main(){ int a,b,c;a=getchar();b=getchar();c=getchar();printf("a=%d b=%d c=%d\n",a,b,c);printf("a=%c b=%c c=%c\n",a,b,c);}//1-3---------------------------------------------------------------------------------------#include "stdio.h"void main(){int a=10,b;int *p; // p为指向整型变量的指针变量 printf("1:a的值=%d, a的内存地址值=%d\n",a, &a); //&a:获取变量a的内存地址值p=&a; //将变量a的内存地址值赋给指针变量p printf("2:p的值=%d, p的内存地址值=%d,p所指向的内存单元的值=%d\n",p,&p,*p);scanf("%d,%d" ,p,&b); //运行时输入100,200【enter】printf("3:a的值=%d,b的值=%d,p所指向的内存单元的值=%d\n",a,b,*p);}//3-3-----------------------------------------------------------#include <stdio.h>#include <math.h> //包含数学函数库void main(){ double a,b,c,p,s;printf("输入三角形三边a,b,c: ");scanf("%lf,%lf,%lf",&a,&b,&c);if(a+b>c && b+c>a && a+c>b) //判断该三边的值是否能构成一个三角形{ p= ;s=sqrt( ); //sqrt():求平方根函数printf("三角形面积=%lf\n",s);}elseprintf("三边(a=%lf,b=%lf,c=%lf)不能构成三角形! ",a,b,c);}实验四选择结构程序设计(上)//2#include <stdio.h>void main(){ char ch,c1,c2;printf("Enter a character:");ch=getchar();if((ch>='A')||(ch<='Z')&& (ch>='a')||(ch<='z'))c1=ch-1;c2=ch+1;if(ch='A'&&ch=’a’) c1=ch+25;else if(ch='Z'&&ch=’z’) c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}实验五选择结构程序设计(下)//1#include "stdio.h"void main(){ char m;printf(“input the month number:\n”);scanf (“%c”,&m);switch (m){case 1 : printf ("Jan");case 2 : printf ("Feb");case 3 : printf ("Mar");case 4 : printf ("Apr");else : printf ("error");}}//2----------------------------------------------------------------------- #include <stdio.h>void main(){ int a,b,d;char ch;printf("Please input a expression:");scanf("%d%c%d", );switch(ch){ case '+': printf("%d+%d=%d\n",a,b,a+b);break;case '-': printf("%d-%d=%d\n",a,b,a-b);break;case '*': printf("%d*%d=%d\n",a,b,a*b);break;case '/': if( )printf("Divisor is zero\n");elseprintf("%d/%d=%lf\n",a,b, a/b); /*强制类型转换*/;default: printf("Input Operator error!\n");}}实验六循环结构程序设计(上)//1-1#include <stdio.h>void main(){ int i=1,sum=0;while(i<100)sum=sum+i;i++;printf("Sum = %d\n",sum);}//1-2--------------------------------------------------------------------------------#include <stdio.h>void main(){ char x;x='Z';while(x!='A'){ printf("%3d",x);if(('Z'-x)%5= =0) printf("\n");x++;}}//2-1-----------------------------------------------------------------#include<stdio.h>void main(){ int n = 21,i;while ( ){ printf( "You take ... ");scanf("%d",&i);if ( )printf( "Don't try to cheat me, take 1, 2, 3, or 4, please! \n");else{ printf( "I take %d\n", 5-i);n = ; //剩下的火柴棍根数}}printf( " Now take the last one, please! \n Haha^-^, you loss!) \n "); }//2-2-------------------------------------------------------------------- #include <stdio.h>void main(){ int day,x1,x2;day=0;x1=1020;while( ){ x2= ;x1=x2;day++;}printf("day=%d\n",day);}//2-3---------------------------------------------------------------------- #include<stdio.h>void main(){ long x,m,y=0;int gw,count=0;printf("input x=");scanf("%ld",&x);;do{ gw=m%10;y= ;;count++;}while( );printf("x=%ld, count=%d, recycle=%ld\n",x,count,y);}}实验七循环结构程序设计(下)//1-1#include<stdio.h>void main(){ long sum(int);long s=0;int k;for(k=1;k<20;k+=2)s=s+sum(k);printf("s=%ld\n",s);}long sum(int x) //求1+2+...+x{ long result=0;int i;for(i=1;i<=x;i++)result+=i;return result;}//1-2------------------------------------------------------------------------#include<stdio.h>void main(){long s=0,result=0;int k,i;for(k=1;k<20;k+=2){for(i=1;i<=k;i++)result+=i;s=s+result;}printf("s=%ld\n",s);}//2-1--------------------------------------------------------------------------#include<stdio.h>void main(){ float score,sum=0,average;int persons=0;while(1){ scanf("%f",&score);if(score<0)continue;else if(score>100)break;else{ sum+=score;persons++;}}average=(float)(sum/persons);printf("人数=%d,平均分=%f\n",persons,average);}//2-2------------------------------------------------------#include <stdio.h>void main(){ int i,j;for (i=0;i<4;i++){ for (j=0;j<=20;j++)printf("\n");for (j=0;j<2*i+1;j++)printf("*");}}//2-3-----------------------------------------------------------#include "stdio.h"void main(){ int a,k,s=0;for (k=2; k<1000; k++){for (a=1; a<=k/2; a++)if(k%a==0) s+=a;if (s==k) //k是完数printf("%d is OK!\n",k);}}实验八函数//1-1#include "math.h"#include "stdio.h"void main(){ float a,b,c;printf("请输入三角形的边长值:\n");scanf("%f%f%f",a,b,c);if(a+b>c&&a+c>b&&b+c>a)printf("Area=%f\n",area(a,b,c));}area(float a,float b,float c){ float s,area_s;s=(a+b+c)/2.0;area_s=sqrt(s*(s-a)*(s-b)*(s-c));return(area_s);}//1-2--------------------------------------------------------------------------#include<stdio.h>int fun(int n){ int jc=1,i;for(i=2;i<=n;i++) jc*=n;return jc;}void main(){ int n;long sum=0;for(n=1;n<11;n++);if(n%3==0||n%5==0)sum+=fun(int n);printf("sum=%ld\n",sum);}//1-3---------------------------------------------------#include<stdio.h>swap(int *p1,int *p2){ int *p;p=p1;p1=p2;p2=p;}void main(){ int a,b;scanf("%d%d",&a,&b);printf("a=%d\tb=%d\n",a,b);swap(&a,&b);printf("a=%d\tb=%d\n",a,b);}//2-1-----------------------------------------------------------------#include<stdio.h>void printline(int n) //{ int i,k;for(i=1;i<=30-n;i++) printf("%c",' ');for(i=1;i<= ;i++) printf( );printf("\n");}void main(){ int i;for(i=1;i<=5;i++) ;for(i=4;i>=1;i--) ;}//2-2-------------------------------------------------------------------------------------------------------#include " stdio.h "int isprime(int m) //判别m是否为质数{ int i ;for(i=2;m%i!=0;i++); //注意:循环体是空语句return ( );}void main(){ int n,x,a,b;scanf("%d",&x);for(n=6;n<=x ;n+=2)for(a=3;a<=n/2;a+=2)if( ) //若a是素数{ b=n-a;if( ) //若b是素数{ printf(“%d=%d+%d”,n,a,b);; //退出a循环,判别下一个n的组合}}}实验九数组(上)//1-1#include<stdio.h>#define N 9;void main(){ int i,sum=0,a[N],max,min;for(i=0;i<N;i++)scanf("%d",a[i]);sum=max=min=a[0];for(i=0;i<N;i++){ sum+=a[i];if(a[i]>max)max=a[i];else if(a[i]<min)min=a[i];}for(i=0;i<N;i++){ printf("%8d",a[i]);if(i%3==2) printf("\n");}printf("max=%d min=%d average=%lf\n",max,min,sum*1.0/N);}//1-2--------------------------------------------------------------------------------------#include <stdio.h>void main(void){ const int n=3;int i,j,sum;int a[][n]={1,2,3,4,5,6,7,8,9};for(i=0;i<=n;i++)for(j=0;j<=n;j++)if(i==j||i+j==n)sum+=a[i][j];printf("sum=%d\n",sum);}//2-1--------------------------------------------------------------#include <stdio.h>#include <math.h>int Is_sushu(int x){ int i,re;re=x>1?1:0;for(i=2;i<=sqrt(x);i++)if( ){ re=0; break;}return(re);}void main(void){ const int n=10;int ss[n],hs[n],k,m,p1,p2;p1=p2=-1;for(k=1;k<=n;k++){ printf("NO %d:",k);scanf("%d",&m);if( ) //若m为素数{ p1++;ss[p1]=m;}else{ ;hs[p2]=m;}}for(k=0;k<=p1;k++) //输出素数数列printf("%4d ",ss[k]);printf(" count=%d\n",p1);for(k=0;k<=p2;k++) //输出合数数列printf("%4d ",hs[k]);printf("count=%d\n", );}//2-2-------------------------------------------------------#include<stdio.h>#include<stdlib.h>void main( ){ int a[10],i,j,t;for(i=0;i<10;i++){ a[i]= ; //生成随机整数printf("%d ",a[i]);}for(i=0;i<9;i++)for(j=0;j< ; j++)if(a[j]>a[j+1]){ t=a[j];a[j]=a[j+1]; ;}printf("\nthe sorted numbers: \n");for(i=0;i<10;i++)printf("%5d ",a[i]);}实验十数组(下)//1-1#include<stdio.h>void main( ){char a[]="wel",b[]="come";int i,n=0;while(!a[n]) n++;for(i=0;b[i]!='\0';i++)a[n+i]=b[i];printf("%s\n",a);}//1-2---------------------------------------------------------------#include<stdio.h>#define N 6int sum(int x,int n){ int i=0,s=0;while(i<=n)if(x[i]>0){s=s+x[i]; i++;}return s;}void main(){ int i=0,s,a[N];do{ printf("NO%d: ",i+1);scanf("%d",&a[i]);if((-100<=a[i])&&(a[i]<=100))i++;elseprintf("wrong! input again...\n");}while(i<N);s=sum(a[N],N);printf(" sum=%d\n",s);}//2-1------------------------------------------------------------#include "stdio.h"main(){ c har str[40];int alphabet=0,digit=0,space=0,other=0,i=0;printf("请输入一串字符:\n");gets(str);while( ){ if(('A'<=str[i])&&(str[i]<='Z')||('a'<=str[i])&&(str[i]<='z')) ++alphabet;else if(str[i]==' ') ++space;else if((str[i]<='9')&&(str[i]>='0')) ++digit;else ++other;i++;}printf("其中有%d个字母,%d个空格,%d个数字,%d个其他字符!\n",alphabet,space, digit,other);}//2-2-------------------------------------------------------------------------------------------------------#define N 50#define M 20#include <stdio.h>void main(){ char a[N][10]; //学号float score[N][M],max_score; //成绩int n,m,i,j,studid;/*输入学生的学号和各门课程的成绩*/printf("学生数n,课程数m:");scanf("%d,%d",&n,&m);for(i=1;i<=n;i++){ printf("输入第%d位学生的学号:",i);scanf("%s", );printf("按课程顺序输入成绩:");for(j=1;j<=m;j++)scanf("%f", );}/*找出每门课程最高的学生学号、课程代号和成绩并输出*/for(j=1;j<=m;j++){ studid=1;max_score=score[1][j];for(i=1;i<=n;i++)if(score[i][j]> max_score){ max_score=score[i][j];studid=i;}printf("第%d门课程最高分的学生学号是:%s,成绩为:%6.2f\n",j,a[studid],max_score);}}实验十一指针的应用//1-1#include <stdio.h>void main(){ int *p,i,a[5];p=a[1];printf("please enter 5 numbers:");for(i=0;i<5;i++)scanf("%d",p++);for(i=0;i<5;i++,p++)printf("%d ",*p);printf("\n");}//1-2-----------------------------------------------------------------------------------------#include<stdio.h>int digits(char *s){ int c=0;while(s){ if(*s >=0&&*s <=9)c++;s++;}return c;}void main(){ char s[80];printf("请输入一行字符\n");gets(s);printf("个数=%d\n",digits(s));}//2-1-------------------------------------------------------------#include<stdio.h>int findmax(int *s,int t ){ int i,k=0;for(i=0; ;i++)if( ) k=i;return ;}void main(){ int j,a[10]={12,23,34,45,56,67,78,89,11,22},k=0,*add;for(j=0;j<10;j++)printf("%4d%10xh\n",a[j],&a[j]);k=findmax(a,10);add=&a[k];printf("\n数组下标=%d,数组元素值=%d,元素地址=%xh\n",k,a[k], add);}//2-2------------------------------------------------------------------ #include <string.h>#include <stdio.h>#define N 81void fun(char *s){ int i=0,t,n= ;for(;s+i<s+n-1-i;i++){ t=*(s+i);*(s+i)= ;*(s+n-1-i)=t; }}void main(){ char a[N];gets(a);printf("The original string is:");puts(a);fun(a);printf("\nThe string after modified:"); puts(a);}//2-3-----------------------------------------------------------#include<stdio.h>#include "string.h"#define N 5void sort(char (*p)[20]) //利用行指针对N个字符串进行排序{ int i,j; char k[20];for (i=0; i<N-1; i++)for (j=i+1; j<N; j++)if (strcmp( ,*(p+j))>0) //*(p+i)表示第i个串{ strcpy(k,*(p+i));strcpy(*(p+i), );strcpy(*(p+j),k);}}void main(){ char ch[N][20]; int i,j;for (i=0; i<N; i++) gets(ch[i]); //输入N个串sort(ch); //利用行指针排序for(i=0; i<N; i++) puts(ch[i]); //输出}实验十二结构体//1-1#include<stdio.h>struct stud{ char name[20];int age;} ;fun(struct stud person[],int n){ int min,i;min=0;for(i=0;i<n;i++)if(person[i] <person[min] ) min=i;return (person );}void main(){ struct stud a[]={{"Zhao",21},{"Qian",20},{"Sun",19},{"LI",22}};int n=4;struct stud minpers;minpers=fun(a,n);printf("%s 是年龄小者,年龄是:%d\n",,minpers.age);}//2-1-----------------------------------------------------------#include<stdio.h>#include<string.h>struct bdata{ int id;char bname[20];float price;} ;int findbook(struct bdata st[],int n,char s[]){ int i;for(i=0;i<n;i++)if(________) return i;__________________;}void main(){ struct bdata book[100];char st[20];int index;printf("请输入要查找书名:";gets(st);index=findbook(_______________);if (index = = -1) printf("%s的书未找到\n",st);else printf("%s的书在%d位置\n",st,index);}//2-2------------------------------------------------------------------------------------------#include<stdio.h>#define M 3#define N 4struct stud{ int no;char name[16];float mark[M];float aver;};void input(struct stud st[]) //输入学生记录{ int i,j;float sum;for(i=0;i<N;i++){ printf("\n输入第%d个学生的学号,姓名:");scanf("%d,%s", );printf("\n输入第%d个学生的3门课程成绩:");for(j=0;j<M;j++)scanf("%f", );}}void output(struct stud st[]) //输出学生记录{ int i,j;printf("\n学号姓名课程1 课程2 课程3 平均分\n");for(i=0;i<N;i++){ printf("%5d %8s",st[i].no,st[i].name);for(j=0;j<M;j++)printf("%5.1f",st[i].mark[j]);printf("%5.2f",st[i].aver);}}void average(struct stud st[]) //求每个学生的平均成绩{ int i,j;float sum;for(i=0;i<N;i++){ sum= ;for(j=0;j<M;j++)sum= ;=sum/M;}}void main(){ struct stud preson[N];input( );average(preson);output(person);}//2-3---------------------------------------------------------------------------------------------------struct oneday{ int day,month,year; };void main(){ struct oneday day1;int alldays(struct oneday);printf("Enter year,month,day:");scanf("%d-%d-%d", );printf("%d\n",alldays(day1));}int runnian(int year){ if (year%400==0) return(1);if (year%4==0 && year%100!=0) return(1);return(0);}int alldays(struct oneday one){ int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int i,t=0;if (runnian(one.year)) day[2]=29;for (i=1; i< ;i++)t+=day[i];t=t+one.day;return(t);}实验十三文件操作//1-1#include <stdio.h>#include<string.h>void main(){ FILE *fp1;char ch[80];int i,j;fp1=fopen("C:\\data1.dat","b");for(i=1;i<=4;i++){ gets(ch);j=0;while(ch[j]!='\0'){ fputc(fp1, ch[j]); j++; }fputc(fp1,'\n');}fclose(fp1);}//1-2----------------------------------------------------------------------------------------#include <stdlib.h>#include <stdio.h>#include <time.h>void main ( ){ int x[10],i,k;FILE *fp2;srand( (unsigned)time( NULL ) );for (i=0;i<10;i++)x[i]=rand();fp2=fopen ("C:\\data2.dat","wb");if(fp2==NULL){ printf("Open error \n");exit(0);}for (int k=0 ; k<10 ; k++ )fwrite(x[k],sizeof(int), fp2);fclose (fp2) ;}//2-1----------------------------------------------------------------#include<stdio.h>#include<stdlib.h>void main(){ FILE *fp;int i=0;char *str[]={"visual C++","visual Basic","visual java","visual foxpro"};if((fp=fopen("C:\\data3.txt", ))==NULL){ printf("%s不能打开!\n","data3.txt");exit(1);}while(i<4){fprintf( );;}fclose(fp);//2-2-------------------------------------------------------------------------------------------------------------------#include<stdio.h>#include<stdlib.h>void main(){ char c;FILE *fp3; long num=0;if((fp3=fopen("c:\\ data3.txt", ))==NULL){ printf("Open error \n");exit(0); }c=fgetc(fp3);while ( ){;c=fgetc(fp3);}printf("\nnum=%ld\n", num);;}(注:可编辑下载,若有不当之处,请指正,谢谢!)。
实验2 用C语言编写简单程序 - 2.1 基本数据处理
实验2 用C语言编写简单程序 - 2.1 基本数据处理实验2 用C语言编写简单程序2.1 基本数据处理【实验目的】(1)掌握算术表达式和赋值表达式的使用。
(2)掌握基本输出函数的使用。
(3)能够编程实现简单的数据处理。
(4)理解编译错误信息的含义,掌握简单C程序的查错方法。
【实验内容】一、调试示例改正下列程序中的错误,求华氏温度100oF对应的摄氏温度。
计算公式如下:c?5?(f?32)9其中,c表示摄氏温度,f表示华氏温度。
(源程序error02_1.cpp)源程序(有错误的程序) 1 #include 2 int main(coid) 3 { 4 5 6 7 8 9 10 }运行结果(改正后程序的运行结果) fahr=100, celsius=37(1)在实验1中,使用菜单来完成编译、连接和运行操作,现在介绍使用工具栏完成上述操作的方法。
在工具栏或菜单栏上右击,出现完整的工具箱菜单,单击选中“编译微型条”选项,该工具条即出现在工具栏下方。
其中,第一个按钮return 0; int Celsius;fahr; fahr=100;celsius=5*(fahr-32)/9;printf(“fahr=d,Celsius=%d\\n”,fahr,celsius);表示编译,第二个按钮表示构件,第四个按钮表示运行。
(3)单击编译按钮,编译时出现的第一条错误信息是: Cannot open include file:’stdoi.h’: No such file or directory双击该错误信息,箭头指向源程序的第1行,错误信息指出,仔细观察后,发现错误原因是,改正后重新编译,新产生的第一个错误信息是:’fahr’: undeclared identifier 双击该错误信息,箭头指向源程序的第4行,错误信息指出误原因是,仔细观察后,发现错,改正后重新编译,编译正确。
(4)单击按钮构建,连接正确。
C语言程序设计实验指导 部分源代码
C语言程序设计部分实验参考答案实验22-1-2#include <stdio.h>int main(){int c,f=150;c=f*5/9-32*5/9;printf("fahr=%d, celsius=%d\n",f, c);return 0;}思考:不一样结果变为65 因为取整过程不同造成误差2-1-3#include <stdio.h>int main(){int c=26,f;f=c*9/5+32;printf("celsius=%d, fahr=%d\n",c, f);return 0;}#include <stdio.h>int main(){//2-1-4int math=87,eng=72,comp=93;printf("math=%d, eng=%d, comp=%d, average=%d\n",math, eng, comp,(math+eng+comp)/3);return 0;}#include <stdio.h>int main(){//2-1/5int n=152,a,b,c;c=n%10;b=(n/10)%10;a=n/100;printf("整数%d 的个位数字是%d, 十位数字是%d, 百位数字是%d\n",n, c, b, a);return 0;}#include <stdio.h>int main(){//2-1-6int x=3,y;y=x*x;printf("%d=%d*%d\n",y,x,x);printf("%d*%d=%d\n",x,x,y);return 0;}#include <stdio.h>int main(){//2-2-1double x, y;printf("Enter x:");scanf_s("%lf",&x);if(x!=0){y=1/x;}else{y=0;}printf("f(%.2f)=%.1f\n",x,y);return 0;}#include <stdio.h>int main(){//2-2-2int celsius, fahr;fahr=100;celsius=5*(fahr-32)/9;printf("fahr=%d, celsius=%d\n",fahr,celsius);return 0;}#include <stdio.h>int main(){//2-2-3double money, rate,x=1.0;int i,year;printf("Enter money, year and rate:");scanf("%lf %d %lf",&money,&year,&rate);for(i=1;i<=year;i++)x=x*(1+rate);printf("intrest=%.2f\n",money*x-money);return 0;}#include <stdio.h>#include<math.h>int main(){//2-2-4double x, y;printf("Enter x");scanf_s("%lf",&x);if(x<0.0)y=pow(x+1,2)+2*x+1/x;elsey=sqrt(x);printf("f(%.2f)=%.2f\n",x,y);return 0;}#include <stdio.h>#include<math.h>int main(){//2-2-5double x, y;printf("Enter x:");scanf_s("%lf",&x);if(x==10)y=1/x;elsey=x;printf("f(%.2f)=%.1f\n",x,y);return 0;}#include <stdio.h>int main(){//2-2-6int x, y;printf("Enter num1:");scanf_s("%d",&x);printf("Enter num2:");scanf_s("%d",&y);printf("%d+%d=%d\n",x,y,x+y);printf("%d-%d=%d\n",x,y,x-y);printf("%d*%d=%d\n",x,y,x*y);printf("%d/%d=%d\n",x,y,x/y);printf("%d%%d=%d\n",x,y,x%y);return 0;}#include <stdio.h>int main(){//2-3-1int i,sum=0;for(i=1;i<=100;i++){sum=sum+i;}printf("sum=%d\n",sum);return 0;}#include <stdio.h>int main(){//2-3-2int i,m,s=0;printf("Enter m:");scanf("%d",&m);for(i=m;i<=100;i++)s=s+i;printf("sum=%d\n",s);return 0;}#include <stdio.h>int main(){//2-3-3int i,m,n;double s=0.0;printf("Enter m:");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);for(i=m;i<=n;i++)s=s+1.0/i;printf("sum=%f\n",s);return 0;}#include <stdio.h>int main(){//2-3-4int i,n;double s=0.0;printf("Enter n:");scanf("%d",&n);for(i=1;i<=n;i++)s=s+1.0/(2*i-1);printf("sum=%f\n",s);return 0;}#include <stdio.h>int main(){//2-3-5int i,n;double s=1.0,t=1.0,sign=1.0;printf("Enter n:");scanf("%d",&n);for(i=1;i<n;i++){sign=-sign;t=(t+3);s=s+1/t*sign;}printf("sum=%.3f\n",s);return 0;}#include <stdio.h>int main(){//2-3-6int low, uper;double fahr,celsius;printf("Enter low:");scanf_s("%d",&low);printf("Enter uper:");scanf_s("%d",&uper);printf("fahr celsius\n");for(fahr=low;fahr<=uper;fahr+=2){celsius=5.0/9.0*(fahr-32.0);printf("%3.0f %6.1f\n",fahr,celsius);}return 0;}#include <stdio.h>int main(){//2-3-7int m, n, i;double p,sum=0.0;printf("Enter m:");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);p=1.0;for(i=1;i<=m;i++)p=p*i;sum=sum+p;p=1.0;for(i=1;i<=n;i++)p=p*i;sum=sum+p;printf("sum=%.0f\n",sum);return 0;}#include <stdio.h>int main(){//2-3-8int x, n,i;double p=1.0;printf("Enter x:");scanf("%d",&x);printf("Enter n:");for(i=1;i<=n;i++)p=p*x;printf("%d的%d次方是%.0f\n",x, n,p);return 0;}#include <stdio.h>#include<math.h>int main(){//2-4-1int n,i;printf("Enter n:");scanf("%d",&n);for(i=0;i<=n;i++)printf("pow(3,%d)=%.0f\n",i,pow(3.0,i));return 0;}#include <stdio.h>#include<math.h>int main(){//2-4-4double sum=0.0,i;for(i=100;i<=1000;i++){sum+=sqrt(i);}printf("sum=%.2f\n",sum);return 0;}// return 0;}#include <stdio.h>#include<math.h>int main(){//2-2-5double x, y;printf("Enter x:");scanf_s("%lf",&x);if(x==10)y=1/x;elsey=x;printf("f(%.2f)=%.1f\n",x,y);return 0;}#include <stdio.h>int main(){//2-2-6int x, y;printf("Enter num1:");printf("Enter num2:");scanf_s("%d",&y);printf("%d+%d=%d\n",x,y,x+y);printf("%d-%d=%d\n",x,y,x-y);printf("%d*%d=%d\n",x,y,x*y);printf("%d/%d=%d\n",x,y,x/y);printf("%d%%d=%d\n",x,y,x%y);return 0;}#include <stdio.h>int main(){//2-3-1int i,sum=0;for(i=1;i<=100;i++){sum=sum+i;}printf("sum=%d\n",sum);return 0;}#include <stdio.h>int main(){//2-3-2int i,m,s=0;printf("Enter m:");scanf("%d",&m);for(i=m;i<=100;i++)s=s+i;printf("sum=%d\n",s);return 0;}#include <stdio.h>int main(){//2-3-3int i,m,n;double s=0.0;printf("Enter m:");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);for(i=m;i<=n;i++)s=s+1.0/i;printf("sum=%f\n",s);return 0;}#include <stdio.h>int main(){//2-3-4int i,n;double s=0.0;printf("Enter n:");scanf("%d",&n);for(i=1;i<=n;i++)s=s+1.0/(2*i-1);printf("sum=%f\n",s);return 0;}#include <stdio.h>int main(){//2-3-5int i,n;double s=1.0,t=1.0,sign=1.0;printf("Enter n:");scanf("%d",&n);for(i=1;i<n;i++){sign=-sign;t=(t+3);s=s+1/t*sign;}printf("sum=%.3f\n",s);return 0;}#include <stdio.h>int main(){//2-3-6int low, uper;double fahr,celsius;printf("Enter low:");scanf_s("%d",&low);printf("Enter uper:");scanf_s("%d",&uper);printf("fahr celsius\n");for(fahr=low;fahr<=uper;fahr+=2){celsius=5.0/9.0*(fahr-32.0);printf("%3.0f %6.1f\n",fahr,celsius);}return 0;}#include <stdio.h>int main(){//2-3-7int m, n, i;double p,sum=0.0;printf("Enter m:");scanf("%d",&m);printf("Enter n:");scanf("%d",&n);p=1.0;for(i=1;i<=m;i++)p=p*i;sum=sum+p;p=1.0;for(i=1;i<=n;i++)p=p*i;sum=sum+p;printf("sum=%.0f\n",sum);return 0;}#include <stdio.h>int main(){//2-3-8int x, n,i;double p=1.0;printf("Enter x:");scanf("%d",&x);printf("Enter n:");scanf("%d",&n);for(i=1;i<=n;i++)p=p*x;printf("%d的%d次方是%.0f\n",x, n,p);return 0;}#include <stdio.h>#include<math.h>int main(){//2-4-1int n,i;printf("Enter n:");scanf("%d",&n);for(i=0;i<=n;i++)printf("pow(3,%d)=%.0f\n",i,pow(3.0,i));return 0;}#include <stdio.h>#include<math.h>int main(){//2-4-4double sum=0.0,i;for(i=100;i<=1000;i++){sum+=sqrt(i);}printf("sum=%.2f\n",sum);return 0;}实验3#include<stdio.h>#include<math.h>int main(){//3-1double a, b, c, d;printf("Enter a, b, c: ");scanf("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;if(a==0)if(b==0)if(c==0)printf("系数均为,方程无意义!\n");elseprintf("a、b为,c不为,方程不成立!\n");elseprintf("x=%.2f\n",c/b);elseif(d>=0){printf("x1=%.2f\n",(-b+sqrt(d))/(2*a));printf("x1=%.2f\n",(-b-sqrt(d))/(2*a));}else{printf("x1=%.2f+%.2fi\n",-b/(2*a),sqrt(-d)/(2*a));printf("x1=%.2f-%.2fi\n",-b/(2*a),sqrt(-d)/(2*a));}return 0;}#include<stdio.h>int main(){//3-2int x,y;printf("Enter x: ");scanf("%d",&x);if(x<0)y=-1;else if(x==0)y=0;elsey=1;printf("sign(%d)=%d\n",x,y);return 0;}#include<stdio.h>int main(){//3-3int letter=0,blank=0,digit=0,other=0,i;char ch;printf("Input 10 characters: ");for(i=0;i<10;i++){ch=getchar();if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')letter++;else if(ch==' '||ch=='\n')blank++;else if(ch<='9'&&ch>='0')digit++;elseother++;}printf("letter=%d, blank=%d, digit=%d,other=%d\n",letter,blank,digit,other);return 0;}#include<stdio.h>int main(){//3-4char grade;printf("Input Grade: ");grade=getchar();switch(grade){case 'A':;case 'a':printf("%c对应的百分制成绩区间是~100\n",grade);break;case 'B':;case 'b':printf("%c对应的百分制成绩区间是~90\n",grade);break;case 'C':;case 'c':printf("%c对应的百分制成绩区间是~79\n",grade);break;case 'D':;case 'd':printf("%c对应的百分制成绩区间是~69\n",grade);break;case 'E':;case 'e':printf("%c对应的百分制成绩区间是~59\n",grade);break;default:printf("数据输入错误\n");}return 0;}#include<stdio.h>int main(){//3-5int choice,count;for(count=0;count<5;count++){printf("[1]apple\n");printf("[2]pear\n");printf("[3]orange\n");printf("[4]grape\n");printf("[0]exit\n");printf("Enter your choice:");scanf("%d",&choice);switch(choice){case 0: return 0;case 1:printf("price is %.2f\n",3.0);break;case 2:printf("price is %.2f\n",2.5);break;case 3:printf("price is %.2f\n",4.1);break;case 4:printf("price is %.2f\n",10.2);break;default:printf("price is %.2f\n",0.0);}}return 0;}#include<stdio.h>int main(){//3-6int i;double grade;for(i=0;i<5;i++){printf("Enter grade: ");scanf("%lf",&grade);if(grade<60.0)printf("Fail\n");elseprintf("Pass\n");}return 0;}#include<stdio.h>#include<math.h>int main(){//3-7double a,b,c,s;printf("Enter 3 sides of the triangle: ");scanf("%lf %lf %lf",&a,&b, &c);if(a+b>c&&a+c>b&&b+c>a){s=(a+b+c)/2;printf("area=%.2f; perimeter=%.2f\n",sqrt(s*(s-a)*(s-b)*(s-c)),a+b+c);}elseprintf("These sides do not correspond to a valid triangle\n");return 0;}#include<stdio.h>int main(){//3-8double salary,rate;printf("Enter the salary: ");scanf("%lf",&salary);if(salary<=850)rate=0.0;else if(salary<=1350.0)rate=0.05;else if(salary<=2850.0)rate=0.1;else if(salary<=5850.0)rate=0.15;elserate=0.2;printf("tax=%.2f\n",rate*(salary-850));return 0;}#include<stdio.h>int main(){//3-9int i,n,grade,a=0,b=0,c=0,d=0,e=0;printf("Enter n: ");scanf("%d",&n);for(i=0;i<n;i++){printf("Enter grade %d: ",i+1);scanf("%d",&grade);switch(grade/10){case 9:case 10:a++;break;case 8:b++;break;case 7:c++;break;case 6:d++;break;case 5:case 4:case 3:case 2:case 1:case 0:e++;break;}}printf("The number of A(90~100):%d\n",a);printf("The number of B(80~89):%d\n",b);printf("The number of C(70~79):%d\n",c);printf("The number of D(60~69):%d\n",d);printf("The number of E(0~59):%d\n",e);return 0;}#include<stdio.h>int main(){//3-10char sign;int x,y;printf("输入x运算符y:");scanf("%d%c%d",&x,&sign, &y);if(sign=='*')printf("%d * %d = %d\n",x,y,x*y);else if(sign=='/')printf("%d / %d = %d\n",x,y,x/y);else if(sign=='%')printf("%d Mod %d = %d\n",x,y,x%y);elseprintf("运算符输入错误!\n");return 0;}实验4#include<stdio.h>#include<cmath>int main(){//4-1-2int flag,denominator;double s,eps,item;printf("Input eps:");scanf("%lf",&eps);s=0.0;flag=1;denominator=1;item=1.0;while(fabs(item)>eps){item=flag*1.0/denominator;s=s+item;flag=-flag;denominator=denominator+3;}printf("s=%.6f\n",s);return 0;}#include<stdio.h>int main(){//4-1-3int x,sum;sum=0;printf("Input integers:");scanf("%d",&x);while(x>0){if(x%2!=0)sum=sum+x;scanf("%d",&x);}printf("The sum of the odd numbers is %d\n",sum);return 0;}#include<stdio.h>int main(){//4-1-4int num,count;printf("Input an integer:");scanf("%d",&num);count=0;do{num=num/10;count++;}while(num!=0);printf("count=%d\n",count);return 0;}#include<stdio.h>int main(){//4-1-5int n,x,min,i;printf("Input n:");scanf("%d",&n);printf("Input numbers:");scanf("%d",&x);min=x;for(i=1;i<n;i++){scanf("%d",&x);if(x<min)min=x;}printf("min=%d\n",min);return 0;}int main(){//4-1-6int n,s=0,c=0;printf("Input an integer:");scanf("%d",&n);do{s+=n%10;n/=10;c++;}while(n);printf("count=%d, sum=%d\n",c,s);return 0;}#include<stdio.h>int main(){//4-1-7double a,b,c,s=0.0;int i,n;printf("Input n:");scanf("%d",&n);for(a=1.0,b=1.0,i=0;i<n;i++,c=a+b,a=b,b=c) s+=(1.0+a/b);printf("s=%.2f\n",s);return 0;}#include<stdio.h>int main(){//4-1-8int a,n,i,s=0,t=0;printf("Input a, n:");scanf("%d%d",&a,&n);for(i=0;i<n;i++){t=10*t+a;s+=t;}printf("s=%d\n",s);return 0;}#include<stdio.h>int main(){//4-1-9int n,i;double h,sum=0.0;printf("Input height: ");scanf("%lf",&h);printf("Input n: ");scanf("%d",&n);sum+=h;for(i=1;i<=n;i++){sum+=h;h/=2.0;}printf("distance=%.1f\n",sum);printf("height=%.1f\n",h);return 0;}#include<stdio.h>#include<math.h>int main(){//4-2-2int m,n,i,j,st,c=0;printf("Input m: ");scanf("%d",&m);if(m==1)m++;printf("Input n: ");scanf("%d",&n);for(i=m;i<=n;i++){st=sqrt((double)i);for(j=2;j<=st;j++)if(!(i%j))break;if(j>st){printf("%d ",i);c++;if(!(c%6))printf("\n");}}return 0;}#include<stdio.h>int main(){//4-2-3int money,f1,f2,f5,count=0;printf("Input money: ");scanf("%d",&money);for(f1=1;f1<=money-7;f1++)for(f2=1;f2<=money-6;f2++)for(f5=1;f5<=money-3;f5++)if(f1+2*f2+5*f5==money)count++;printf("count=%d\n",count);for(f1=1;f1<=money-7;f1++)for(f2=1;f2<=money-6;f2++)for(f5=1;f5<=money-3;f5++)if(f1+2*f2+5*f5==money)printf("fen5: %d fen2: %d fen1: %d\n",f5,f2,f1);return 0;}#include<stdio.h>int main(){//4-2-4int m,n,k,a,b,c,tmp;printf("Input m: ");scanf("%d",&m);printf("Input n: ");scanf("%d",&n);for(k=m;k<=n;k++){tmp=k;a=tmp%10;tmp/=10;b=tmp%10;tmp/=10;c=tmp;if(a*a*a+b*b*b+c*c*c==k)printf("%d\t(%d*%d*%d+%d*%d*%d+%d*%d*%d=%d)\n",k,c,c,c,b,b,b,a,a,a,k);}return 0;}#include<stdio.h>int main(){//4-2-5int i,j,s;for(i=1;i<=200;i++){s=1;for(j=2;j<=i/2;j++)if(i%j==0)s=s+j;if(s==i){printf("%d=1",i);for(j=2;j<=i/2;j++)if(i%j==0)printf("+%d",j);printf("\n");}}return 0;}#include<stdio.h>//5-2int sign(int x){if(x>0)return 1;if(x==0)return 0;return -1;}int main(){int x;printf("Enter x:");scanf("%d",&x);printf("sign(%d)=%d\n",x,sign(x));return 0;}#include<stdio.h>//5-3int even(int x){return (x%2==0);}int main(){int x,s=0;printf("Input integers: ");scanf("%d",&x);while(x>0){if(!even(x))s+=x;scanf("%d",&x);}printf("The sum of the odd is %d\n",s);return 0;}#include<stdio.h>//5-4#include<math.h>double distance(double x1,double y1, double x2, double y2){ return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}int main(){double x1, y1, x2, y2;printf("Input (x1, y1):");scanf("%lf%lf",&x1,&y1);printf("Input (x2, y2):");scanf("%lf%lf",&x2,&y2);printf("distance=%.2f\n",distance(x1,y1,x2, y2));return 0;}#include<stdio.h>//5-5#include<math.h>int prime(int m){int k,sqrtm=sqrt((double)m);for(k=2;k<=sqrtm;k++)if(m%k==0)return 0;return 1;}int main(){int m,n,c=0,s=0,k;printf("Input m:");scanf("%d",&m);printf("Input n:");scanf("%d",&n);for(k=(m==1?2:m);k<=n;k++)if(prime(k)){c++;s+=k;}printf("count=%d, sum=%d\n",c,s);return 0;}#include<stdio.h>//5-6int countdigit(int number, int digit){int c=0;if(number<0)number=-number;do{if(number%10==digit)c++;number/=10;}while(number);return c;}int main(){int n;printf("Enter an integer:");scanf("%d",&n);printf("Number of digit 2: %d\n",countdigit(n,2));return 0;}#include<stdio.h>//5-7int is(int n){int s=0,x,m=n;do{x=m%10;s+=x*x*x;m/=10;}while(m);if(s==n)return 1;return 0;}int main(){int m,n,i;printf("Input m:");scanf("%d",&m);printf("Input n:");scanf("%d",&n);for(i=m;i<=n;i++)if(is(i))printf("%d\n",i);return 0;}#include<stdio.h>//5-8double fact(int n);int main(void){int i;double sum=0.0;/*需要初始化为*/for(i=1;i<=10;i++)/*上界是*/sum=sum+fact(i);printf("1!+2!+...+10!=%f\n",sum);return 0;}double fact(int n){int i;double result=1.0;for(i=1;i<=n;i++)result=result*i;/*result中累积n!*/ return result;}实验7#include<stdio.h>int main(){//7-2-4int a[6][6],n,i,j,flag=1;printf("Input n:");scanf("%d",&n);printf("Input array:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(j=0;j<n-1;j++){for(i=j+1;i<n;i++)if(a[i][j]){flag=0;break;}if(flag==0)break;}if(flag==0)printf("No\n");elseprintf("Yes\n");return 0;}#include<stdio.h>int main(){//7-2-6int a[6][6],n,i,j,row,col;printf("Input n:");scanf("%d",&n);printf("Input array:\n");for(i=0;i<n;i++)/*输入矩阵*/for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++){/*对矩阵的每一行*/row=i;col=0;for(j=0;j<n;j++)/*找当前行的最大值元素a[row][col]*/if(a[i][j]>a[row][col]){col=j;}for(j=0;j<n;j++)/*检测a[row][col]是否为第col列的最小元素*/ if(a[j][col]<a[row][col])break;if(j>=n){//找到鞍点元素a[row][col]printf("a[%d][%d]=%d\n",row,col,a[row][col]);break;}}if(i>=n)/*所有行都检测过没有找到鞍点*/printf("NO\n");return 0;}#include<stdio.h>int main(){//7-3-2char c,s[80];int i,index=-1;printf("Input a character:");c=getchar();getchar();printf("Input a string:");gets(s);i=0;while(s[i]!='\0'){if(s[i]==c)index=i;i++;}if(index>-1)printf("index=%d\n",index);elseprintf("Not found\n");return 0;}#include<stdio.h>int main(){//7-3-3char s[80];int i,upcase=0,count=0;printf("Input a string:");gets(s);i=0;while(s[i]!='\0'){if(s[i]>='A'&&s[i]<='Z'){upcase++;switch(s[i]){case 'A':case 'E':case 'I':case 'O':case 'U':count++;}}i++;}if(upcase)count=upcase-count;printf("count=%d\n",count);return 0;}#include<stdio.h>int main(){//7-3-4char s[80];int i;printf("Input a string:");gets(s);i=0;while(s[i]!='\0'){if(s[i]>='A'&&s[i]<='Z')s[i]='Z'-(s[i]-'A');i++;}printf("After replaced: %s\n",s);return 0;}#include<stdio.h>int main(){//7-3-5char s[80];int i,n=0;printf("Input a string:");gets(s);i=0;while(s[i]!='\0'){if(s[i]>='0'&&s[i]<='9'){n=n*16+s[i]-'0';i++;continue;}switch(s[i]){case 'a':case 'A':n=n*16+10;break;case 'b':case 'B':n=n*16+11;break;case 'c':case 'C':n=n*16+12;break;case 'd':case 'D':n=n*16+13;break;case 'e':case 'E':n=n*16+14;break;case 'f':case 'F':n=n*16+15;break;}i++;}printf("Hex=%d\n",n);return 0;}实验8#include<stdio.h>//8-1-1void move(int *, int, int);int main(){int m, n, i, a[80], *p;printf("Input n, m:");scanf("%d%d",&n, &m);for(p=a,i=0;i<n;i++)scanf("%d",p+i);/*将&p++换成p+i*/ move(a,n,m);printf("After moved:");for(i=0;i<n;i++)printf("%5d",a[i]);return 0;}void move(int *x,int n, int m){int i,j,k;for(i=0;i<m;i++){k=x[n-1];/*暂存x[n-1],因为它将被覆盖*/for(j=n-1;j>0;j--)x[j]=x[j-1];/*设置断点*/x[0]=k;}}#include<stdio.h>//8-1-2#include<stdlib.h>int search(int *, int, int);int main(){int *a,n,i,x,index;printf("Input n:");scanf("%d",&n);if((a=(int*)malloc(n*sizeof(int)))!=NULL) exit(1);printf("Input %d integers:",n);for(i=0;i<n;i++)scanf("%d",a+i);printf("Input x:");scanf("%d",&x);index=search(a,n,x);if(index==-1)printf("Not found\n");elseprintf("index=%d\n",index+1);free(a);return 0;}int search(int *a,int n,int x){int i;for(i=0;i<n;i++)if(a[i]==x)return i;return -1;}#include<stdio.h>//8-1-3#include<stdlib.h>void sort(int*,int);int main(){int i,n,*a;printf("Input n:");scanf("%d",&n);if((a=(int*)malloc(n*sizeof(int)))!=NULL) exit(1);printf("Input %d integers:",n);for(i=0;i<n;i++)scanf("%d",a+i);sort(a,n);printf("After sorted the array is:");for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");return 0;}int max(int *a,int n){int i,index=0;for(i=1;i<n;i++)if(a[i]>a[index])index=i;return index;}void swap(int *x,int *y){int t=*x;*x=*y;*y=t;}void sort(int *a,int n){int i,j;for(i=n;i>0;i--){j=max(a,i);swap(a+i-1,a+j);}}#include<stdio.h>//8-1-4#include<stdlib.h>int main(){int n,i,total,token,*a;printf("Input n:");scanf("%d",&n);if((a=(int*)malloc(n*sizeof(int)))==NULL) exit(1);for(i=0;i<n;i++)a[i]=i+1;total=n;i=0;while(total>1){token=0;/*报数的当前值*/while(token<3){/*未出队的依次报数*/if(a[i]!=0)token++;if(token<3)/*未满m继续报数*/i=(i+1)%n;}a[i]=0;/*报到的出队*/i=(i+1)%n;total--;/*队中人数减*/}for(i=0;i<n;i++)if(a[i]!=0)break;printf("Last No. is: %d\n",a[i]);free(a);return 0;}#include<stdio.h>//8-2-2#include<string.h>int main(){char s[80],m[80];int length,max=0,i;printf("Input 5 strings: ");for(i=0;i<5;i++){scanf("%s",s);length=strlen(s);if(length>max){max=length;strcpy(m,s);}}printf("The longest is: %s\n",m);return 0;}#include<stdio.h>//8-2-3#include<string.h>void delchar(char *s,char c){int i=0;while(*s!='\0'){if(*s==c)/*遇到字符c*/strcpy(s,s+1);/*将该字符后的部分拷贝成从当前位置开始的串*/ s++;}}int main(){char s[80],c;printf("Input a string: ");gets(s);printf("Input a char: ");scanf("%c",&c);delchar(s,c);printf("After deleted, the string is: %s\n",s);return 0;}#include<stdio.h>//8-2-4#include<string.h>void strmcpy(char *s, char *t, int m){strcpy(s,t+m-1);}int main(){char s[80],t[80];int m;。
修改源代码实验报告
一、实验目的1. 理解源代码的结构和功能。
2. 掌握修改源代码的基本方法。
3. 提高代码调试和优化的能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:C++3. 集成开发环境:Visual Studio 2019三、实验内容本次实验主要针对一个简单的C++程序进行源代码的修改,具体包括以下步骤:1. 读取原始源代码。
2. 分析源代码的功能和结构。
3. 修改源代码中的错误。
4. 优化源代码。
5. 测试修改后的程序。
四、实验步骤1. 读取原始源代码首先,我们需要读取原始的C++源代码。
以下是一个简单的C++程序示例:```cpp#include <iostream>using namespace std;int main() {int a = 10;int b = 20;int sum = a + b;cout << "The sum of a and b is: " << sum << endl;return 0;}```2. 分析源代码的功能和结构通过阅读上述代码,我们可以发现该程序的功能是计算两个整数`a`和`b`的和,并将结果输出到控制台。
代码结构如下:- 包含头文件`<iostream>`,用于输入输出操作。
- 使用`using namespace std;`声明使用标准命名空间。
- 定义`main`函数,程序执行的入口。
- 定义变量`a`和`b`,并赋值为10和20。
- 计算变量`a`和`b`的和,并存储在变量`sum`中。
- 使用`cout`输出变量`sum`的值。
- 返回0,表示程序正常结束。
3. 修改源代码中的错误在分析源代码的过程中,我们可能会发现一些错误,例如:- 缺少输入输出流对象的初始化。
- 使用`cout`输出时,缺少换行符。
以下是修改后的代码:```cpp#include <iostream>using namespace std;int main() {int a = 10;int b = 20;int sum = a + b;cout << "The sum of a and b is: " << sum << endl; // 添加换行符 return 0;}```4. 优化源代码在修改错误后,我们可以进一步优化源代码,例如:- 使用更简洁的变量命名。
数据结构c语言版实验及源代码
实验1 求两个多项式的相加运算(线性表)编写一个程序用单链表存储多项式,并实现两个多项式相加的函数。
/*文件名:实验1.cpp*/#include <stdio.h>#include <malloc.h>#define MAX 20 /*多项式最多项数*/typedef struct /*定义存放多项式的数组类型*/{float coef; /*系数*/int exp; /*指数*/} PolyArray[MAX];typedef struct pnode /*定义单链表结点类型*/{float coef; /*系数*/int exp; /*指数*/struct pnode *next;} PolyNode;void DispPoly(PolyNode *L) /*输出多项式*/{PolyNode *p=L->next;while (p!=NULL){printf("%gX^%d ",p->coef,p->exp);p=p->next;}printf("\n");}void CreateListR(PolyNode *&L,PolyArray a,int n) /*尾插法建表*/{PolyNode *s,*r;int i;L=(PolyNode *)malloc(sizeof(PolyNode)); /*创建头结点*/L->next=NULL;r=L; /*r始终指向终端结点,开始时指向头结点*/ for (i=0;i<n;i++){s=(PolyNode *)malloc(sizeof(PolyNode));/*创建新结点*/s->coef=a[i].coef;s->exp=a[i].exp;r->next=s; /*将*s插入*r之后*/r=s;}r->next=NULL; /*终端结点next域置为NULL*/}void Sort(PolyNode *&head) /*按exp域递减排序*/{PolyNode *p=head->next,*q,*r;if (p!=NULL) /*若原单链表中有一个或以上的数据结点*/ {r=p->next; /*r保存*p结点后继结点的指针*/p->next=NULL; /*构造只含一个数据结点的有序表*/p=r;while (p!=NULL){r=p->next; /*r保存*p结点后继结点的指针*/q=head;while (q->next!=NULL && q->next->exp>p->exp)q=q->next; /*在有序表中找插入*p的前驱结点*q*/ p->next=q->next; /*将*p插入到*q之后*/q->next=p;p=r;}}}void Add(PolyNode *ha,PolyNode *hb,PolyNode *&hc) /*求两有序集合的并*/ {PolyNode *pa=ha->next,*pb=hb->next,*s,*tc;float c;hc=(PolyNode *)malloc(sizeof(PolyNode)); /*创建头结点*/tc=hc;while (pa!=NULL && pb!=NULL){if (pa->exp>pb->exp){s=(PolyNode *)malloc(sizeof(PolyNode)); /*复制结点*/s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;}else if (pa->exp<pb->exp){s=(PolyNode *)malloc(sizeof(PolyNode)); /*复制结点*/s->exp=pb->exp;s->coef=pb->coef;tc->next=s;tc=s;pb=pb->next;}else /*pa->exp=pb->exp*/{c=pa->coef+pb->coef;if (c!=0) /*系数之和不为0时创建新结点*/{s=(PolyNode *)malloc(sizeof(PolyNode)); /*复制结点*/s->exp=pa->exp;s->coef=c;tc->next=s;tc=s;}pa=pa->next;pb=pb->next;}}if (pb!=NULL) pa=pb; /*复制余下的结点*/while (pa!=NULL){s=(PolyNode *)malloc(sizeof(PolyNode)); /*复制结点*/s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;}tc->next=NULL;}void main(){PolyNode *ha,*hb,*hc;PolyArray a={{1.2,0},{2.5,1},{3.2,3},{-2.5,5}};PolyArray b={{-1.2,0},{2.5,1},{3.2,3},{2.5,5},{5.4,10}};CreateListR(ha,a,4);CreateListR(hb,b,5);printf("原多项式A: ");DispPoly(ha);printf("原多项式B: ");DispPoly(hb);Sort(ha);Sort(hb);printf("有序多项式A: ");DispPoly(ha);printf("有序多项式B: ");DispPoly(hb);Add(ha,hb,hc);printf("多项式相加: ");DispPoly(hc);}实验2 求解迷宫问题的所有路径 及最短路径程序(堆栈) 改进教材中3.2.4节中的求解迷宫问题程序,要求输出如图所示的迷宫的所有路径,并求出最短路径成都及最短路径。
C语言实验报告源代码
C语言实验报告源代码1.问题描述:计算三个整数12*34*56的积,得出正确的结果,并能通过此实验熟悉vc6.0的操作环境;源程序及注释:# include <stdio.h>void main() /*求三个数的积*/{ int a,b,c,sum; /*这是声明部分,定义a,b,c,sum为整型*/ / a=12; /*以下5行为C语句*/b=34;c=56;sum=a*b*c;printf("%d\n",sum);}2.。
问题描述:熟悉并理解基本数据类型,了解整数变量的数据范围,主要是基本整型变量,短整型以及长整型。
源程序及注释:#include <stdio.h>void main(){ int a; long b; short c;a=2147483647; a=a+1;printf("a=%d\n",a);b=2147483647; b=b+1;printf("b=%d\n",b);c=32767; c=c+1;printf("c=%d\n",c);}3.问题描述:了解并学会C语言的基本输入输出用法,熟悉运用printf函数和scanf函数,能用C语言语句解决简单的实际问题;源程序及注释:#include <stdio.h>void main(){float c,F ;printf("please input a Fahrenheit");scanf ("%f",&f);c=(5.0/9)*(F-32);printf("the Centigrade is %.2f\n",c);}4.问题描述:熟悉并理解C语言的选择结构,了解选择结构的程序设计方法,掌握选择结构中条件表达式和逻辑表达式的用法,掌握if语句的规则。
C语言实验报告(一)
C语言程序设计实验报告2013--2014学年第二学期 2013 级专业:班级:学号:姓名:一、实验题目:顺序结构二、实验目的:(略)三、实验内容1. 程序验证(略)2.程序设计1)编写程序,已知圆半径radius=1.25,求圆周长和面积。
源代码: #include <stdio.h>#include <math.h>#define PI 3.14159void main( ){double r,l,s;r=1.25;l=2.0*PI*r;s=PI*r*r;printf("l=%f,s=%f\n",l,s);}运行结果:2)编写程序完成单个字母的大小写转换。
源代码:#include <stdio.h>void main(){char c;c='a';c=c-32;printf("%c\n",c);}运行结果:3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。
源代码:#include<stdio.h>void main(){int x,l,m,n;printf("请输入一个三位数\n");scanf("%d",&x);l=x/100;m=(x/10)%10;n=x%10;printf("l=%d\n,m=%d\n,n=%d\n",l,m,n);}运行结果:(学习的目的是增长知识,提高能力,相信一分耕耘一分收获,努力就一定可以获得应有的回报)。
C语言实验带源程序及流程图
printf("root:\n");
if (disc>0)
{
greater_than_zero(a,b);
printf("x1=%f\t\tx2=%f\n",x1,x2);
}
else if (disc==0)
{
equal_to_zero(a,b);
printf("x1=%f\t\tx2=%f\n",x1,x2);
printf("它们的最大公约数是:%d\n",n);
printf("它们的最小公倍数是:%d\n",p/n);
return 0;
}
运行结果
程序二
功能
用二分法求 在(-10,10)之间的根
流程图N-S图
源代码
#include <stdio.h>
#include <math.h>
int main()
{
char text[3][80];
upp=low=dig=spa=oth=0;
for(i=0;i<3;i++)
{
printf("please input line %d:\n",i+1);
gets(text[i]);
for(j=0;j<80&&text[i][j]!='\0';j++)
{
if (text[i][j]>='A'&&text[i][j]<='Z')
for(i=0;i<3;i++)
实验数据处理C语言源代码
/*残差数组*/
/*data 的平均值*/
/*标准偏差 Sx*/
/*总不确定度*/
\n",wl->name); >d[i]);
int i=0,k; float da; char Z=0; wulidata *wl; wl=(wulidata *)malloc(sizeof(wulidata)); printf("请为你要处理的数据起一个名字:"); scanf("%s",wl->name); printf("\n 下面请你输入数据%s 具体数值,数据不能超过 MAX 个
float ad,sum=0; int i; for(i=0;i<wl->LEN;i++) {
sum=sum+(wl->d[i]); } ad=sum/(wl->LEN); wl->avg=ad; } /*-------------------------------------------------------------------*/ void CanCha(wulidata *wl) { int i; for(i=0;i<wl->LEN;i++)
temp=fabs((wl->d[i])-(wl->avg)); if((temp>g*(wl->sx))&&(temp>CCha)) {
YCZhi=wl->d[i]; CCha=temp; j=i; } } if(j>=0){ printf("找到异常值为%s%d=%f,将它剔除。\n",wl-
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,通力根1保过据护管生高线产中敷工资设艺料技高试术中卷0资不配料仅置试可技卷以术要解是求决指,吊机对顶组电层在气配进设置行备不继进规电行范保空高护载中高与资中带料资负试料荷卷试下问卷高题总中2体2资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况1卷中下安,与全要过,加度并强工且看作尽护下可1都关能可于地以管缩正路小常高故工中障作资高;料中对试资于卷料继连试电接卷保管破护口坏进处范行理围整高,核中或对资者定料对值试某,卷些审弯异核扁常与度高校固中对定资图盒料纸位试,置卷编.工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试术写5、卷交重电保底要气护。设设装管备备置线4高、调动敷中电试作设资气高,技料课中并3术试、件资且中卷管中料拒包试路调试绝含验敷试卷动线方设技作槽案技术,、以术来管及避架系免等统不多启必项动要方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,术用作是金为指属调发隔试电板人机进员一行,变隔需压开要器处在组理事在;前发同掌生一握内线图部槽 纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
C语言实验源代码
大一下c语言实验源代码021112122--白娟娟实验一1.输入三个整数,使用指针按由小到大的顺序排序并输出。
编程思路:先定义三个整型变量和三个指向整型数据的指针变量pi(i=1,2,3),然后用这三个指针分别指向三个整型变量,输入三个整型变量的值,采用*pi去比较大小和输出。
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){int a,b,c,*p1,*p2,*p3,max,min;scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;if(*p1>*p2){min=*p2;*p2=*p1;*p1=min; }if(*p1<*p3){if(*p2<*p3)printf("%3d,%3d,%3d",*p1,*p2,*p3);else{ max=*p3;*p3=*p2;*p2=max;printf("%3d,%3d,%3d",*p1,*p2,*p3);}}else{min=*p1;*p1=*p2;*p2=min; printf("%3d,%3d,%3d",*p1,*p2,*p3);}return 0;}2.编写一个函数,采用指针变量作为形式参数,接收2个整数并按照从小到大进行排序,要求在主函数中完成数据的输入、输出。
编程思路:定义函数void sort(int *p1,int *p2);主函数输入数据,输出原始数据和排序后的数据。
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){ void sort(int *p1,int *p2);int a,b,*p1,*p2;scanf("%d,%d",&a,&b);p1=&a;p2=&b;printf("%3d",a,b);}void sort(int *p1,int *p2){int temp;if(*p1>*p2){temp=*p2;*p2=*p1;*p1=temp;}}实验二1.输入十个整数,放在数组list中,然后用指针法从后向前输出该数组中的整数。
c语言源代码
c语言源代码在计算机科学领域,C语言是一种被广泛应用的程序设计语言,它以其简洁、高效和可移植性而闻名。
本文将提供一些C语言的源代码示例,帮助读者更好地理解和应用这门编程语言。
1. Hello World程序#include <stdio.h>int main() {printf("Hello, World!");return 0;}上述代码是C语言中经典的Hello World程序。
它使用了stdio.h头文件,其中包含了用于输入输出的函数。
main()函数是程序的入口点,它执行printf函数并打印出"Hello, World!"的字符串。
最后,return语句表示程序正常结束。
2. 计算两个数的和#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个数的和为:%d", sum);return 0;}以上代码展示了如何用C语言编写一个简单的计算两个数的和的程序。
通过使用scanf函数,用户可以在程序运行时输入两个整数。
程序将这两个数相加,并使用printf函数打印出结果。
3. 判断一个数是否为质数#include <stdio.h>int main() {int num, i, isPrime = 1;printf("请输入一个正整数:");scanf("%d", &num);for (i = 2; i <= num / 2; ++i) {if (num % i == 0) {isPrime = 0;break;}}if (isPrime)printf("%d是质数", num);elseprintf("%d不是质数", num);return 0;}上述代码展示了如何用C语言编写一个判断一个数是否为质数的程序。
C语言程序设计实验及代码
C语言程序设计实验及代码一、实验介绍本实验旨在通过C语言编程实践,培养学生的程序设计能力。
通过完成以下实验内容,学生将会加深对C语言的理解,掌握基本的编程技巧和方法,并能够编写简单的C语言程序。
二、实验内容1.实验一:实现一个简单的计算器程序编写一个简单的计算器程序,能够进行简单的加减乘除运算。
要求用户输入两个数字和操作符(+、-、*、/),然后输出计算结果。
实验提示:可以使用switch语句来实现根据操作符执行相应的运算。
2.实验二:实现一个学生成绩管理系统编写一个学生成绩管理系统程序,能够添加学生信息、显示学生信息、计算学生平均成绩等功能。
要求使用结构体来保存学生信息,并使用数组来存储多个学生的信息。
实验提示:可以使用循环来实现多次添加学生信息的功能。
可以使用指针来操作结构体数组。
3.实验三:实现一个简单的图书管理系统编写一个图书管理系统程序,能够添加图书信息、显示图书信息、查询图书信息等功能。
要求使用结构体来保存图书信息,并使用链表来存储多本图书的信息。
实验提示:可以使用链表的插入和删除操作来实现添加和删除图书的功能。
通过遍历链表来显示和查询图书的信息。
三、实验代码示例1.实验一代码示例:```c#include<stdio.h>int mainfloat num1, num2; //用于存储用户输入的两个数字char op; //用于存储用户输入的操作符float result; //用于存储计算结果printf("请输入两个数字和一个操作符(+、-、*、/):");scanf("%f %f %c", &num1, &num2, &op);switch(op)case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if(num2 != 0)result = num1 / num2;elseprintf("除数不能为0!\n");return 0;}break;default:printf("操作符输入错误!\n");return 0;}printf("计算结果:%f\n", result);return 0;```2.实验二代码示例:```c#include<stdio.h>#define MAX_STUDENT 100 //定义最大学生数量struct Studentint id; //学号char name[20]; //姓名float score; //成绩};void addStudent(struct Student *students, int *count) if(*count >= MAX_STUDENT)printf("已达到学生数量上限!\n");return;}printf("请输入学生的学号、姓名和成绩:");scanf("%d %s %f", &(students[*count].id),students[*count].name, &(students[*count].score));(*count)++;void showStudent(struct Student *students, int count) int i;if(count == 0)printf("暂无学生信息!\n");return;}printf("学号\t姓名\t成绩\n");for(i = 0; i < count; i++)printf("%d\t%s\t%f\n", students[i].id, students[i].name, students[i].score);}float calculateAverage(struct Student *students, int count) int i;float sum = 0;if(count == 0)return 0;for(i = 0; i < count; i++)sum += students[i].score;}return sum / count;int mainstruct Student students[MAX_STUDENT]; //保存学生信息的数组int count = 0; //学生数量int choice;while(1)printf("\n学生成绩管理系统\n");printf("1.添加学生信息\n");printf("2.显示学生信息\n");printf("3.计算平均成绩\n");printf("0.退出\n");printf("请输入对应操作的序号:");scanf("%d", &choice);switch(choice)case 1:addStudent(students, &count);break;case 2:showStudent(students, count);break;case 3:printf("平均成绩:%f\n", calculateAverage(students, count));break;case 0:return 0;default:printf("输入无效的序号!\n");break;}}return 0;```3.实验三代码示例:```c#include<stdio.h>#include<stdlib.h>#include<string.h>struct Bookchar name[50]; //书名float price; //价格struct Book *next; //指向下一本书的指针};struct Book *head = NULL; //链表的头指针void addBookstruct Book *newBook;char name[50], author[20];float price;newBook = (struct Book *)malloc(sizeof(struct Book)); scanf("%s %s %f", name, author, &price);strcpy(newBook->name, name);strcpy(newBook->author, author);newBook->price = price;newBook->next = head;head = newBook;void showBooksstruct Book *p;if(head == NULL)printf("暂无图书信息!\n");return;}p = head;while(p != NULL)printf("%s\t%s\t%f\n", p->name, p->author, p->price); p = p->next;}void searchByNamestruct Book *p;char name[50];if(head == NULL)printf("暂无图书信息!\n");return;}printf("请输入要查询的图书的书名:");scanf("%s", name);p = head;while(p != NULL)if(strcmp(p->name, name) == 0)printf("%s\t%s\t%f\n", p->name, p->author, p->price); return;}p = p->next;}printf("未找到该图书!\n");int mainint choice;while(1)printf("\n图书管理系统\n");printf("1.添加图书信息\n");printf("2.显示图书信息\n");printf("3.查询图书信息\n");printf("0.退出\n");printf("请输入对应操作的序号:");scanf("%d", &choice);switch(choice)case 1:addBook(;break;case 2:showBooks(;break;case 3:searchByName(;break;case 0:return 0;default:printf("输入无效的序号!\n");break;}}return 0;```以上是三个C语言程序设计实验的相关介绍和代码示例。
C语言源代码
C语言源代码C 语言作为一门经典的编程语言,在计算机科学领域中具有举足轻重的地位。
C 语言源代码是用 C 语言编写的程序的原始文本形式,它是程序员思想的具体体现,也是计算机能够理解和执行的指令集合。
C 语言源代码的基本组成部分包括预处理指令、变量声明、函数定义、控制结构等。
预处理指令通常以“”开头,比如“include <stdioh>”,它用于在编译前对源代码进行一些预处理操作,如包含所需的头文件。
变量声明用于指定程序中使用的数据类型和名称。
C 语言中有多种数据类型,如整型(int)、浮点型(float、double)、字符型(char)等。
例如,“int age =25;”声明了一个名为 age 的整型变量,并初始化为 25。
函数是 C 语言中的重要概念,它将一段具有特定功能的代码封装起来,方便重复使用和代码的组织。
一个简单的函数可能如下所示:```cint add(int a, int b) {return a + b;}```在上述代码中,“add”是函数名,“int”表示函数返回值的类型,“a”和“b”是函数的参数。
控制结构用于决定程序的执行流程,包括顺序结构、选择结构(如ifelse 语句)和循环结构(如 for 循环、while 循环)。
比如,ifelse 语句用于根据条件执行不同的代码块:```cif (age >= 18) {printf("You are an adult\n");} else {printf("You are a minor\n");}```for 循环用于重复执行一段代码一定的次数:```cfor (int i = 0; i < 5; i++){printf("%d\n", i);}```while 循环则在条件为真时持续执行代码:```cint count = 0;while (count < 10) {printf("%d\n", count);count++;}```C 语言源代码的编写需要遵循严格的语法规则。
c语言源代码
c语言源代码下面是一个简单的 C 语言源代码示例,用于计算并输出斐波那契数列的前 n 个数字。
该程序首先要求用户输入要生成的斐波那契数列的长度,然后使用迭代的方式生成并输出这些数字。
```c#include <stdio.h>// 函数声明void generateFibonacci(int n);int main() {int n;// 提示用户输入要生成的斐波那契数列的长度printf("请输入要生成的斐波那契数列的长度:");scanf("%d", &n);// 调用函数生成并输出斐波那契数列generateFibonacci(n);return 0;}// 生成斐波那契数列的函数定义void generateFibonacci(int n) {int i, first = 0, second = 1, next;// 输出斐波那契数列的前 n 个数字printf("斐波那契数列的前 %d 个数字为:\n", n);for (i = 0; i < n; ++i) {if (i <= 1)next = i;else {next = first + second;first = second;second = next;}printf("%d ", next);}printf("\n");}```这个程序首先包含了 `<stdio.h>` 头文件,这是 C 标准库的一部分,用于输入输出操作。
然后定义了一个函数`generateFibonacci`,用来生成并输出斐波那契数列的前 n 个数字。
在 `main` 函数中,程序提示用户输入要生成的斐波那契数列的长度,然后调用 `generateFibonacci` 函数来实现具体的生成和输出操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验数据处理C语言源代码.txt14热情是一种巨大的力量,从心灵内部迸发而出,激励我们发挥出无穷的智慧和活力;热情是一根强大的支柱,无论面临怎样的困境,总能催生我们乐观的斗志和顽强的毅力……没有热情,生命的天空就没的色彩。
// Liubin.cpp : 处理实验数据//#include<math.h>#include<stdio.h>#include<stdlib.h>#include<conio.h>#define MAX 20typedef struct wuli{float d[MAX];char name[10];int LEN;float ccha[MAX]; /*残差数组*/float avg; /*data的平均值*/double sx; /*标准偏差Sx*/double DU; /*总不确定度*/}wulidata;wulidata *InputData();void average(wulidata *wl);void YCZhi(wulidata *wl);void CanCha(wulidata *wl);void BZPianCha(wulidata *wl);/*标准偏差*/void BQDdu(wulidata *wl);/*总不确定度*/void rage(wulidata *wl);void output(wulidata *wl);/*----------------------------------------------------------*/void line(){int i;printf("\n");for(i=0;i<74;i++)printf("=");printf("\n");}/*-------------------------------------------------------*/wulidata *InputData(){int i=0,k;float da;char Z=0;wulidata *wl;wl=(wulidata *)malloc(sizeof(wulidata));printf("请为你要处理的数据起一个名字:");scanf("%s",wl->name);printf("\n下面请你输入数据%s具体数值,数据不能超过MAX个\n",wl->name);printf("当name='#'时输入结束\n");do{printf("%s%d=",wl->name,i+1);scanf("%f",&da);wl->d[i]=da;i++;if(getchar()=='#') break;}while(wl->d[i-1]!=0.0&&i<MAX);wl->LEN=i-1;do{printf("你输入的数据如下:\n");for(i=0;i<wl->LEN;i++)printf("%s%d=%f\t",wl->name,i+1,wl->d[i]);printf("\n你是否要作出修改(Y/N)?");while( getchar()!='\n');Z=getchar();if( Z=='y'||Z=='Y'){printf("你须要修改哪一个元素,请输入其标号i=(1~%d)\n",wl->LEN);while( getchar()!='\n'); scanf("%d",&k);printf("\n%s%d=",wl->name,k);scanf("%f",&(wl->d[k-1]));}else if(Z=='n'||Z=='N')printf("OK!下面开始计算。
\n");}while(Z!='N'&&Z!='n');return(wl);}/*--------------------------------------------------------------------*/void average(wulidata *wl){float ad,sum=0;int i;for(i=0;i<wl->LEN;i++){sum=sum+(wl->d[i]);}ad=sum/(wl->LEN);wl->avg=ad;}/*-------------------------------------------------------------------*/void CanCha(wulidata *wl){int i;for(i=0;i<wl->LEN;i++)wl->ccha[i]=(wl->d[i])-(wl->avg);}/*---------------------------------------------------------------*/void YCZhi(wulidata *wl)/*检查并剔除异常值*/{int i,j;float g,YCZhi;double temp,CCha;printf("下面开始检查并提出异常值!\n");do{printf("当前共有%d个数,数据如下:\n",wl->LEN);for(i=0;i<wl->LEN;i++)printf("%s%d=%f\t",wl->name,i+1,wl->d[i]);j=-1;CCha=0.0;printf("\n请输入g的值\ng=");scanf("%f",&g);for(i=0;i<wl->LEN;i++){temp=fabs((wl->d[i])-(wl->avg));if((temp>g*(wl->sx))&&(temp>CCha)){YCZhi=wl->d[i];CCha=temp;j=i;}}if(j>=0){printf("找到异常值为%s%d=%f,将它剔除。
\n",wl->name,(j+1),wl->d[j]);for(i=j;i<wl->LEN-1;i++)wl->d[i]=wl->d[i+1];wl->LEN--;}elseprintf("本次未找到异常数据,数据中异常数据已剔除完毕!\n");}while(j>=0);printf("当前共有%d个数,数据如下:\n",wl->LEN);for(i=0;i<wl->LEN;i++)printf("%s%d=%f\t",wl->name,i+1,wl->d[i]);}/*---------------------------------------------------------------*/void BZPianCha(wulidata *wl)/*标准偏差*/{double sum;int i;sum=0.0;for(i=0;i<wl->LEN;i++)sum=sum+pow(wl->d[i],2);sum=sum-wl->LEN*pow(wl->avg,2);wl->sx=sqrt(sum/(wl->LEN-1));}/*--------------------------------------------------------------*/void leijinxwc(wulidata *wl)/*判断累进性误差*/{double M,sum1,sum2,temp;int i;sum1=sum2=0.0;temp=wl->ccha[0];for (i=1;i<=wl->LEN;i++)if (temp<wl->ccha[i])temp=wl->ccha[i];if(wl->LEN%2==0) /*数据为偶数个时*/{for(i=0;i<(wl->LEN/2);i++){sum1=sum1+ wl->ccha[i];}for (i=(wl->LEN/2);i<wl->LEN;i++){sum2=sum2+wl->ccha[i];}M=fabs(sum1-sum2);if(M>temp)printf("存在累进性误差\n");else printf("不存在累进性误差\n");}else /*数据为奇数个时*/{ for(i=0;i<(((wl->LEN)-1)/2);i++){sum1=sum1+ wl->ccha[i];}for (i=((wl->LEN)+1)/2;i<wl->LEN;i++){sum2=sum2+wl->ccha[i];}M=fabs(sum1-sum2);if(M>temp)printf("存在累进性误差\n");else printf("不存在累进性误差\n");}}/*---------------------------------------------------------------*/void zhouqixwc(wulidata *wl)/*判断周期性误差*/{ double sum=0;int i;for(i=0;i<wl->LEN-1;i++)sum=sum+(wl->ccha[i])*(wl->ccha[i+1]);if(fabs(sum)>(sqrt(wl->LEN-1))*pow(wl->sx,2))printf("存在周期性误差\n");else printf("不存在周期性误差\n");}/*-------------------------------------------------------------*/void BQDdu(wulidata *wl)/*总不确定度*/{float A,B,Q,k1,k2,y;printf("请输入系统不确定度百分比y:");scanf("%f",&y);printf("请输入系统误差分布系数k1:");scanf("%f",&k1);printf("请输入平均值随机误差分布系数k2:");scanf("%f",&k2);printf("%lf\n",(double)((wl->avg)*y));printf("%f\n",(wl->sx)/sqrt(wl->LEN));Q=((wl->avg)*y)/k1;A=(double)pow((wl->sx)/sqrt(wl->LEN),2); B=(double)pow(Q,2);wl->DU=(double)k2*(sqrt(A+B));}/*--------------------------------------------------------------------*/void rage(wulidata *wl){printf("计算得到所求数值的范围应取%f~%f。