洛阳理工学院实验报告
附:源程序:
第一题:
#include<stdio.h>
int main()
{
int prime(int);
int n,flag;
printf("输入一个正整数:\n");
scanf("%d",&n);
if (flag==1)
printf("是素数\n");
else
printf("不是素数\n");
}
int prime(int n)
{
int i,flag;
if(n==1)flag=0;
else
for(i=2;i<=n/2;i++)
{
if(n%i==0)flag=0;
else flag=1;
}
return (flag);
}
第二题:
#include <stdio.h>
int main()
{
void cpy(char [],char []);
char a[80];
char c[40];
printf("请输入一个字符串:\n");
gets(a);
cpy(a,c);
printf("其中元音字母为:%s\n",c);
}
void cpy(char a[],char c[])
{
int i=0,j=0;
while(a[i]!='\0')
{
if(a[i]=='a'||a[i]=='A'||a[i]=='e'||a[i]=='E'||
a[i]=='i'||a[i]=='I'||a[i]=='o'||a[i]=='O'||
a[i]=='u'||a[i]=='U')
{
c[j]=a[i];
j++;
}
i++;
}
c[j]='\0';
}
第三题:
#include<stdio.h>
int i,j,x,y;
int main()
{
float aver1(float a[][5]);
float aver2(float a[][5]);
float max(float a[][5]);
float a[10][5];
printf("请按照科目顺序输入学生成绩:\n");
for(i=0;i<10;i++)
{
printf("第%d位学生成绩:",i+1);
for(j=0;j<5;j++)
scanf("%f",&a[i][j]);
}
for(i=0;i<10;i++)
printf("第%d位学生的平均成绩为:%6.2f\n",i+1,aver1(a));
for(j=0;j<5;j++)
printf("第%d门科目的平均成绩为:%6.2f\n",j+1,aver2(a));
printf("最高分为:%6.2f\n",max(a));
}
float aver1(float a[][5])
{
float aver1,sum=0;
for(j=0;j<5;j++)
sum=sum+a[i][j];
aver1=sum/5;
return (aver1);
}
float aver2(float a[][5])
{
float sum=0,aver2;
for(i=0;i<10;i++)
sum=sum+a[i][j];
aver2=sum/10;
return (aver2);
}
float max(float a[][5])
{
float max,b[10];
int x,y,z=0;
for(i=0;i<10;i++)
{
x=i;y=0;
for(j=1;j<5;j++)
{
if(a[i][j-1]>a[i][j])a[i][j]=a[i][j-1];
else x=i;y=j;
}
b[z]=a[x][y];
z++;
}
max=b[0];
for(z=1;z<10;z++)
{
if(b[z-1]>b[z])b[z]=b[z-1];
else max=b[z];
}
i=0;
for(j=0;j<5;j++)
{
if(max==a[i][j])break;
if(j==4){i++;j=0;}
if(i==10)break;
}
printf("第%d位学生的第%d门科目分数最高,",i+1,j+1);
return (max);
}
第四题:
#include <stdio.h>
int main()
{
void kg(char a[10],char b[10]);
char a[10],b[10];
int j;
printf("请输入一个4位数:");
gets(a);
kg(a,b);
b[8]='\0';
printf("%s\n",b);
return 0;
}
void kg(char a[10],char b[10])
{
int i,j,k;
i=0,j=0;
while(a[i]!='\0')
{
for(k=0;k<8;k++)
if(k%2!=0)b[k]=' ';
b[j]=a[i];
i++;
j+=2;
}
}第五题:
#include <stdio.h>
int main()
{
void fun(char a[]);
char a[30];
printf("请输入字符串:");
gets(a);
fun(a);
}
void fun(char a[])
{
int i,b=0,c=0,d=0,e=0;
for(i=0;a[i]!='\0';i++)
{
if((a[i]<='z'&&a[i]>='a')||(a[i]<='Z'&&a[i]>='A'))b++;
else if(a[i]<='9'&&a[i]>='0')c++;
else if(a[i]==' ')d++;
else e++;
}
printf("字母数为:%d;\t数字数为:%d;\t空格数为:%d;\t其他符号数为:%d\n",b,c,d,e);
}
第二篇:c语言 实验报告8
实验八 一维数组程序设计
实验目的:
1、 掌握一维数组的定义和引用方法。
2、 掌握正确使用一维数组编程。
实验内容:
1、 编写程序,输入一个正整数n(1<n<=10),再输入n个整数,输出平均值(保留两位小
数)。
2、 编写程序,输入一个正整数n(1<n<=10),再输入n个整数,按逆序输出这些数。
3、 编写程序,输入一个正整数n(1<n<=10),再输入n个整数,将它们从大到小排序后输
出。
实验过程:
实验1、算法思想:先定义一个数组,将每个输入的数赋值给相应的数组中的元素,并
将每个数进行相加,在最后输出结果时输出“sum/n”即可。
程序清单:
#include<stdio.h> int main(void) { int i,n; double average,sum; int fib[10]; printf("输入一个正整数n:"); scanf("%d",&n); printf("依次输入%d个数:",n); average=0; for(i=0;i<n;i++){ scanf("%d",&fib[i]); sum=sum+fib[i]; } printf("average=%.2f\n",sum/n); return 0; }
测试数据与实验结果:原始数据:n=5,数据为:5 2 6 4 5相应的运行结果:
average=4.4.
分析与思考:数组元素是从0开始的。
实验2、算法思想:先定义一个数组,将每个输入的数赋值给相应的数组中的元素,在输出时按“fib[n-1-i]”即可。
程序清单:
#include<stdio.h> int main(void) { int i,n; int fib[10]; printf("输入一个正整数n:"); scanf("%d",&n); printf("依次输入%d个数:",n); for(i=0;i<n;i++){ scanf("%d",&fib[i]);
} for(i=0;i<n;i++){ printf("%d\n",fib[n-1-i]); } return 0; }
测试数据与实验结果:原始数据:n=5.数据为:4 5 8 6 2相应的运行结果:2 6 8
5 4
分析与思考:一共有n个数,逆序输出时应输出第i个数时,其值应为第n-1-i
个数的数值。
实验3、算法思想:先定义一个数组,将每个输入的数赋值给相应的数组中的元素,再
用for语句将数组中的数进行选择排序,最后再用for语句进行输出。
程序清单:
#include<stdio.h> int main(void) { int i,n,k,index,max; int fib[10]; printf("输入一个正整数n:"); scanf("%d",&n); printf("依次输入%d个数:",n); for(i=0;i<n;i++){ scanf("%d",&fib[i]); } for(k=0;k<n-1;k++){ index=k; for(i=k+1;i<n;i++){ if(fib[i]>fib[k]){ index=i; max=fib[index]; fib[index]=fib[k]; fib[k]=max; } } } printf("after sorted:\n"); for(i=0;i<n;i++){ printf("%d",fib[i]); printf("\n"); } return 0; }
测试数据与实验结果:原始数据:n=5,数据为:1 5 3 8 9,相应的运行结果:9
8 5 3 1
分析与思考:排序时只需要循环n-1次,最后一个数不用进行循环。
实验心得: