elseif(*min>a[i])*min=a[i];
s+=a[i];
}
*avg=s/10.0;
}
voidmain()
{inta[10]={10,21,8,22,40,23,32,26,30,12};
intmax,min;
floatavg;
fun(a,&max,&min,&avg);
printf("max=%d\n",max);
printf("min=%d\n",min);
printf("avg=%6.2f\n",avg);
}
运行结果截屏:
第三题:
程序代码:
#include
voidfun(inta[],intn)
{inti,t;
for(i=0;i{t=a[i];a[i]=a[n-i-1];a[n-i-1]=t;}
}
voidmain()
{inta[6]={20,12,6,21,29,15};
int*p,i;
//用数组作为函数的实参;
printf("原先数组的序列:
\n");
for(i=0;i<6;i++)
printf("%4d",a[i]);
printf("\n");
printf("用数组作为实参,交换后的序列:
\n");
fun(a,6);
for(i=0;i<6;i++)
printf("%4d",a[i]);
printf("\n");
//用指针作为函数的实参
printf("用指向数组的指针作为实参,再次交换后的序列:
\n");
p=a;
fun(p,6);
for(i=0;i<6;i++)
printf("%4d",a[i]);
printf("\n");
}
运行结果截屏:
第四题:
程序代码:
#include
//用选择法编写数组排序函数,按从小到大顺序排序
voidsort1(inta[],intn)
{inti,j,k,t;
for(i=0;i{k=i;
for(j=i+1;jif(a[k]>a[j])k=j;
if(k!
=i){t=a[i];a[i]=a[k];a[k]=t;}
}
}
//用冒泡法排序,按从小到大顺序排序
voidsort2(inta[],intn)
{inti,j,t,f;
for(i=0;i{f=1;
for(j=0;jif(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;f=0;}
if(f==1)break;
}
}
voidmain()
{inta[10]={40,23,26,20,35,55,12,43,37,45};
inti;
printf("排序前的序列:
\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
printf("选择排序后的序列:
\n");
sort1(a,10);
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n冒泡排序后的序列:
\n");
sort2(a,10);
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
}
运行结果截屏:
第八次作业
1. 设数组a[N]中已经有n个数并已按从小到大顺序排序。
要求输入一个数x,将其插入到数组中,使数组仍然有序。
#include
usingnamespacestd;
voidmain()
{inta[10]={4,6,8,10,20};
inti,j,x;
cin>>x;
for(i=0;i<9;i++)
{if(a[i]>x)//寻找插入点;
{
for(j=9;j>i;j--)//将元素向后移动一位;
a[j]=a[j-1];
a[i]=x;//空出位置,插入元素x;
break;
}
}
for(i=0;i<10;i++)
cout<}
2. 编写函数intff(char*s),判断s所指字符串是否为“回文串”,即前后对称。
如abcba为回文串,若是返回1,否则返回0,并在主程序中调用该函数,对输入的字符串进行判断。
#include
#include
intff(char*s)
{intn,i;
n=strlen(s);
for(i=0;iif(s[i]!
=s[n-i-1])return0;
return1;
}
voidmain()
{charss[20];
cin>>ss;
if(ff(ss))cout<<"YES!
"<elsecout<<"NO!
"<}
3. 编写一个函数voidstrcp(char*s1,char*s2),将字符数组s1中下标为偶数的元素复制到另一个字符数组s2中。
在主程序中调用该函数,输出这个字符串。
#include
//将字符串s1中下标为偶数的字符复制到s2中。
voidstrcp(char*s1,char*s2)
{inti=0,j=0;
for(i=0;s1[i]!
='\0';i++)
if(i%2==0)s2[j++]=s1[i];
s2[j]='\0';
}
intmain()
{chars[]="Nanchang!
";
charss[10];
strcp(s,ss);
cout<
cout<return0;
}
4. 输入一行字符,统计其中字母,数字,空格和其他字符的个数。
#include
intmain()
{chars[100];
intB=0,L=0,D=0,S=0,T=0,i;
cin.getline(s,100,'\n');
for(i=0;s[i]!
='\0';i++)
if(s[i]>='A'&&s[i]<='Z')B++;
elseif(s[i]>='a'&&s[i]<='z')L++;
elseif(s[i]>='0'&&s[i]<='9')D++;
elseif(s[i]=='')S++;
elseT++;
cout<<"大写字符个数:
"<
cout<<"小写字符个数:
"<cout<<"数字字符个数:
"<cout<<"空格字符个数:
"<
cout<<"其他字符个数:
"<return0;
}
第九次作业
1、编写一个程序,采用类计算n!
并输出10!
的值.
#include
classJS
{public:
JS(inta)//构造函数;
{n=a;}
intfac()//计算N的阶乘;
{inti,p=1;
for(i=1;ip=p*i;
returnp;
}
private:
intn;
};
intmain()
{JSobj(10);//定义对象;
ints;
s=obj.fac();//调用对象的方法计算阶乘;
cout<
return0;
}
2、定义并实现一个矩形类,有长宽两个属性,定义一个构造函数初始化对象,用成员函数GetS()、GetL分别计