
我写了个,不知道行不,有什么不妥的请指出哈,如要格式请加我,将之发给你
四 川 大 学 计 算 机 学 院、软 件 学 院
实 验 报 告
学号: 姓名: 专业:计算机科学与技术 班级:5 第 13 周
课程名称 c/C++ 实验课时 2
实验项目 字符串的复制与追加 实验时间 08.5 16
实验目的 1.掌握字符串的基本 *** 作和理解数据结构
实验环境 VC 60
实验内容(算法、程序、步骤和方法) 先计算出S1和S2的字符个数,为S3分配好空间,利用已有库函数先将S1复制到S3中,再将S2追加到S3中,当显示完后要记住收回空间,做好善后处理。
源代码如下:
#include<iostream>
#include<stringh>
using namespace std;
int main()
{
char s1="abcdef";
char s2="123456f";
int n=strlen(s1)+strlen(s2);//计算s1,和s2的总长度n
char s3=new char[n+1]; //定义S3并分配空间大小为n
strcpy(s3,s1); //将s1复制到s3中
strcat(s3,s2); //将s2追加到s3后面
cout<<"s3="<<s3<<endl;
delete []s3; //收回空间
s3=NULL; //将指针指向空
return 0;
}
(接上)
实验内容(算法、程序、步骤和方法)
结构是顺序存储结构,算法顺序链接法
数据记录
和计算 数据有:字符串S1 ,S2;和一未知字符串S3
只需计算前两个字符串长度之和
结 论
(结 果) 利用字符数组可以顺序存储字符数据,并且能够顺序处理数据;
算法复杂度O(n+m);处于中性
小 结 字符数组能够带来很好的存储结构,便于 *** 作,但是算法不是很好,只能顺序遍历数组,故复杂度不是很小
指导老师评 议
成绩评定: 指导教师签名:
#include "stdioh"
#define N 10
typedef struct
{char name[20];
char xuehao[20];
int xuhao[5];
float shuxue[10];
float yingyu[10];
float jisuanji[10];
float sum[10];
float average[10];
}user;
main()
{user sp[N],temp;
int i;
printf("enter xinxi; \n");
for(i=0;i<N;i++)
{gets(sp[i]name);gets(sp[i]xuehao);
gets(sp[i]xuhao);gets(sp[i]shuxue);
gets(sp[i]yingyu);gets(sp[i]jisuanji);
sum=sp[i]shuxue+sp[i]yingyu+sp[i]jisuanji;
average=sum/3;
}
getsort(sp);
printf("after sorted: \n");
for(i=0;i<N;i++)
printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t%d\n",sp[i]xuhao,sp[i]xuehao,sp[i]name,sp[i]yingyu,sp[i]jisuanji,sp[i]shuxue,sp[i]sum,sp[i]average);
}
getsort(user sp)
{int i,j;
user temp;
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(sp[i]sum<sp[j]sum)
{temp=sp[i]sum;
sp[i]sum=sum[j]sum;
sp[j]sum=temp;}
我没运行,可能对吧,你试一下
1#include<stdioh>
void main()
{
float sum=0;//总分
float max=0;//最高分
float min=100;//最低分
int i=0;//统计输入个数
float score;
while(1)
{
printf("请输入第%d个评委的分数:",i+1);
scanf("%f",&score);
if(score==-1) break;//输入-1退出循环
else
{
if(score>max) max=score;
if(score<min) min=score;
sum+=score;
i++;
}
}
2#include <stdioh>
int main( )
{ int i,n=10,a[10],av=0;//英文下分号,av 初始化
for(i=0;i<n;i++) //英文下分号,n要有值
scanf("%d",&a[i]); //少了&
for(i=0;i<n;i++)
{ printf("%d",a[i]);
if((i+1)%3==0)
printf("\n");
}
for(i=0;i!=n;i++)
av+=a[i];
printf("av=%f\n",(float)av/n);
}
3
#include <stdioh>
#define N 5
int main(int argc, char argv[])
{
int num[N]={0},i=0,k=0;
float score[N]={00};
for(i=0; i<N; i++)
scanf("%d%f",&num[i],&score[i]);
for(i=1; i<N; i++)
if(score[k]<score[i]) k=i;
for(i=0; i<N; i++)
printf("%8d",num[i]);
printf("\n");
for(i=0; i<N; i++)
printf("%82f",score[i]);
printf("\n");
printf("number=%d,score=%2f\n",num[k],score[k]);
return 0;
}
4
(1)
#include <stdioh>
int main(int argc, char argv[])
{
int a[8]= {34,56,45,57,69,48,79,61},i=0,j=0,k=0,t=0;
for(i=0; i<7; i++) {
k=i;
for(j=i+1; j<8; j++)
if(a[k]<a[j]) k=j;
t=a[i]; a[i]=a[k]; a[k]=t;
}
for(i=0; i<8; i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
(2)
#include <stdioh>
int main(int argc, char argv[])
{
int a[8]= {34,56,45,57,69,48,79,61},i=0,j=0,t=0;
for(i=0; i<7; i++)
for(j=i+1; j<8; j++)
if(a[i]<a[j]) {
t=a[i]; a[i]=a[j]; a[j]=t;
}
for(i=0; i<8; i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
5#include <stdioh>
void main()
{ int n[11],i,j,m,f;
for(i=0;i<10;i++)
scanf("%d",&n[i]);
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
{
f=n[i];
n[i]=n[i]>n[j]n[i]:n[j];
if(n[j]>f)n[j]=f;
}
for(i=0;i<10;i++)
printf("%7d",n[i]);
printf("\nplease enter the 11th number:\n");
scanf("%d",&m);
for(i=0;i<10;i++)
if(m>n[i])
{
for(j=10;j>i;j--)
n[j]=n[j-1];
n[i]=m;
break;
}
else
if(i==9 && m<=n[9])
n[10]=m;
for(i=0;i<11;i++)
printf("%7d",n[i]);
getch();
}
6#include <stdioh>
int main(int argc, char argv[])
{ int i,j,a[4][4],sum=0,p=1,max,maxi;
for (i=0;i<4;i++)
for (j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
for (i=0;i<4;i++)
{ sum+=a[i][i];
if (i%2==0)
p=a[i][i];
if(a[i][i]>max)
{ max=a[i][i];
maxi=i;
}
}
printf("对角线上各元素的和:%d\n",sum);
printf("对角线上行、列下标均为偶数的各元素的积:%d\n",p);
printf("对角线上其值最大的元素:%d,它在数组中的位置:第%d行第%d列\n",max,maxi,maxi);
return 0;
}
以上就是关于C语言实验报告全部的内容,包括:C语言实验报告、《C语言程序设计》实验报告、C语言报告 急!!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)