例题7.1
从键盘任意输入10个数字,使用直接插入排序法对这组数字有小到大进行排序。
#include <iostream>
#include<stdio.h>
using namespace std;
void insert(int s[],int n)
{
int i,j;
for(i=2;i<=n;i++)
{
s[0]=s[i];
j=i-1;
while(s[0]<s[j])
{
s[j+1]=s[j];
j--;
}
s[j+1]=s[0];
}
}
int main()
{
int a[11],i;
printf("please input numbers:\n");
for(i=1;i<=10;i++)
{
scanf("%d",&a[i]);
}
printf("original order:\n");
for(i=1;i<=10;i++)
{
printf("%5d",a[i]);
}
insert(a,10);
printf("\nthe sorted order:\n");
for(i=1;i<=10;i++)
{
printf("%5d",a[i]);
}
printf("\n");
}
结果
例题7.2
统计字符串中大写字母的个数
#include <iostream>
#include<stdio.h>
using namespace std;
int cap(char c)
{
if(c>='A'&&c<='Z')
return 1; /*如果是大写字母就返回1*/
else
return 0;
}
int main()
{
char str[100];
int s=0,i;
printf("please input a string:\n");
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(cap(str[i]))
s++;
}
puts("the string is:");
puts(str);
printf("s=%d\n",s);/*输出大写字母的数量*/
}
结果
例题7.3
从键盘上输入一个数,求该数的阶乘。
#include <iostream>
#include<stdio.h>
using namespace std;
int digui(int a);
int main()
{
int n,value;
scanf("%d",&n);
value=digui(n);
printf("%d factorial is:%d",n,value);
return 0;
}
int digui(int a)
{ int result;
if(a==1)
return 1;
else
result=digui(a-1)*a;
return result;
}
结果