一.实验目的:
1. 学习和掌握二重循环结构编程;
2. 学习和使用基础算法--枚举算法
二、实验内容和步骤 |
1) 编写程序,打印99乘法表
代码:
#include<stdio.h>
void main()
{
inti,j;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d",i,j,i*j);
}
printf("\n");
}
}
2) 将一面额为10元倍数的整钱(<=100元)换成1元、2元和5元的零钱组合(每种面值都要有)。输入要换的面额(如10元),输出所有可能的换法(如2种)。
代码:
#include<stdio.h>
voidmain()
{
int n,i,j,k;
printf("请输入10倍的整钱:\n");
scanf("%d",&n);
for(i=1;i<20;i++)
for(j=1;j<50;j++)
for(k=1;k<100;k++)
{
if(n-i*5-j*2-k==0)
printf("%d张5元,%d张2元,%d张1元\n",i,j,k);continue;
}
}
进阶:若希望换出来的零钱数量越少越好,怎么修改程序可以很快得到最优方案?
3) 输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。
输入输出示例
Input words: The sum of the odd numbers.
Count = 6
代码:
#include<stdio.h>
voidmain()
{
char a[100],*string=a;
int i=0,sum=0;
printf("Please input thestring:\n");
gets(string);
if(*string!=' ')
sum=1;
while(*(string+i)!='\0')
{
if(*(string+i)==''&&*(string+i+1)!=' ')
sum++;
i++;
}
printf("There are %dwords.\n",sum);
}
(2) 分析并修改下面程序错误,使之能够正常运行。
错误代码一:
要求按如下数字形状输出,代码有错误,请修改正确。
1
123
12345
1234567
代码如下:
#include<stdio.h>
int main()
{
int i, j;
for(i=1;i<=4;i++)
{
for(j=1;j<=i;j++)
{
printf(“%d”,j);
}
printf(“\n”);
}
}