实验作业
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
4.1
#include <iostream>
using namespace std;
int main()
{
int a[10];
int i;
for(i=0;i<10;i++)
a[i]=i*2+2;
for(i=0;i<10;i++)
{
cout<<a[i]<<'\t';
if((i8+1)%5==0)
cout<<endl;
}
return 0;
}
4.2
2.编程实现课本每一个编程习题。
从键盘输入5个数,然后按照从大到小的顺序输出
#include<iostream>
using namespace std;
int main()
{
int i,t,k=0,n,j,str[10];
cout<<"请输入5个数:"<<endl;
for(i=0;i<5;i++)
cin>>str[i];
for(i=0;i<5;i++)
{ n=0;
{for(j=0;j<4;j++)
{if(str[j]<str[j+1])
{t=str[j];
str[j]=str[j+1];
str[j+1]=t;n++;}
}
if(n==0)
break;
}
}
cout<<"从大到小顺序:";
for(i=0;i<5;i++)
cout<<str[i]<<" ";
cout<<endl;
return 0;
}
从键盘上为数组a[2][3]输入任意整数值,显示该数组,找出该数组最大元素及其下标
#include<iostream.h>
main() {
int a[2][3],i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
for(i=0;i<2;i++) //显示数组a
for(j=0;j<3;j++)
cout<<a[i][j]<< " ";
int h,l,Max=a[0][0]; //找出该数组的最大元素及其下标
for(i=0;i<2;i++)
for (j=0;j<3;j++)
if(Max<a[i][j])
{ Max=a[i][j];h=i;l=j;
}
cout<<"Max:
"<<"a["<<h<<"]["<<l<<"]="<<a[h][l]<<endl;
}
编写程序,统计Fibonacci数列钱20个数中有多少个三位数,并输出数列中第16项数据
// 第四章1.cpp : 定义控制台应用程序的入口点。
//习题4-3
#include "stdafx.h"
#include<iostream>
#include<iomanip>
using namespace std;
int num[20]={1,1};
int main()
{
int a,b=0;
for(a=2;a<20;a++)
num[a]=num[a-2]+num[a-1];
cout<<"初始数据:"<<endl;
for(a=1;a<=20;a++)
{
cout<<setw(8)<<num[a-1];
if(a%5==0)
cout<<endl;
}
for(a=0;a<20;a++)
if(num[a]>99&&num[a]<1000)
b++;
cout<<"数列中共有"<<b<<"个三位数"<<endl;
cout<<"第十六项数是:"<<num[15]<<endl;
return 0;
}
输入一个字符串,统计其中大写字母、小写字母、空格、数字及其他字符的个数
#include<iostream.h>
void main() {
char a[100];
cin.get(a,100);
int x=0,y=0,z=0,t=0;
for(int i=0;i<=100;i++)
{ if(a[i]=='\0')
break;
else
if(a[i]>='a'&&a[i]<='z')
x++;
else
if(a[i]>='0'&&a[i]<='10')
y++;
else
if(a[i]==' ')
z++; else t++;
}
cout<<"字母数为:"<<x<<endl;
cout<<" 空格数为:"<<z<<endl;
cout<<" 数字为:"<<y<<endl;
cout<<"其他为:"<<t<<endl;
}
输入一个字符串,反向输出每一个字符,并求此字符串长度
#include<iostream.h>
#include<string.h>
void main()
{
char ch[100];
cin.get(ch,100);
for (int i=strlen(ch)-1;i>=0;i--)
cout<<ch[i]; cout<<endl;
}
编写程序,其功能是:输入一个字符串,将其中的所有数字删除、输出改动后的字符串及其长度,例如输入:ab123df354ADFx193输出abdfADFx 8
#include<iostream.h>
void main()
{
char a[100],b[100];
cin>>a;
int i=0,j=0;
while(a[i]!='\0')
{ if(a[i]>='0'&&a[i]<='9')
i++;
else
{ b[j]=a[i]; j++; i++;
}
}
b[j]='\0';
cout<<b<<" "<<j<<endl;
}
3. 编程定义一个4X5矩阵和5X3矩阵,并计算它们的积。
#include<iostream>
using namespace std;
int main()
{
int a[4][5],b[5][3],c[4][3];
int i,j,k;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
cin>>a[i][j];
for(i=0;i<5;i++)
for(j=0;j<3;j++)
cin>>b[i][j];
for(i=0;i<4;i++)
for(j=0;j<3;j++)
c[i][j]=0;
for(i=0;i<4;i++)
for(k=0;k<3;k++)
for(j=0;j<5;j++)
c[i][k]+=a[i][j]*b[j][k];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
return 0;
}
4.编程输出1到n的平方的自然数构成的“魔方阵”,魔方阵是指它每一行和每一列及对角线之和均相等的方阵。
#include<iostream>
using namespace std;
int main()
{
int a[15][15],i,j,k,p,n;
p=1;
for (k=2;k<=n*n;k++)
{i=i-1;
j=j+1;
if ((i<1) && (j>n))
{i=i+2;
j=j-1;
}
else
{if (i<1) i=n;
if (j>n) j=1;
}
if (a[i][j]==0)
a[i][j]=k;
else
{i=i+2;
j=j-1;
a[i][j]=k;
}
}
for (i=1;i<=n;i++)
{for (j=1;j<=n;j++)
printf("%5d",a[i][j]);
printf("\n");
}
return 0;
}
5.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。
Compiling...
dsfsd.cpp
c:\program files\microsoft visual studio\myprojects\dsfsd\dsfsd.cpp(17) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
Compiling...
dsfsd.cpp
c:\program files\microsoft visual studio\myprojects\dsfsd\dsfsd.cpp(32) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
Compiling...
dsfsd.cpp
c:\program files\microsoft visual studio\myprojects\dsfsd\dsfsd.cpp(33) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.