例3-18 求100~200之间不能被3整除的数。
我编的:
#include<iostream>
using namespace std;
int main()
{
int i;
for (i = 100; i <= 200; i++)
if (i % 3 != 0)
cout << i << endl;
else continue;//和标准答案的主要区别就是这里
}
标准答案,源程序:
#include<iostream>
using namespace std;
int main()
{
for (int n = 100; n <= 200; n++)
{
if (n % 3 != 0)
cout << n;
return 0;
}
}
从这里可以看出:
我们可以在for语句内部直接定义变量类型
例3-19 读入一系列整数,统计出正整数个数 i和负整数个数 j,读入0 则结束
我编的:
#include<iostream>
using namespace std;
int main()
{
int i,p=0,n=0;
//p:positive numbers
//n:negative numbers
cin >> i;
while (i!=0)
{
if (i > 0)
p = p + 1;
else
n = n + 1;
}
cout << "positive numbers:" << p
<< "negative numbers" << n;
}
结果只能在里面输入一个数,然后就输入不下去了。哪里出了问题?
在输入(语句)过程的循环语句中忘记加入了输入i的语句指令。应改为:
#include<iostream>
using namespace std;
int main()
{
int i,p=0,n=0;
//p:positive numbers
//n:negative numbers
cin >> i;
while (i!=0)
{
if (i > 0)
p = p + 1;
else
n = n + 1;
cin >> i;
}
cout << "positive numbers:" << p
<<endl<< "negative numbers" << n;
}
标准答案,源程序:
#include<iostream>
using namespace std;
int main()
{
int i = 0, j = 0, n;
cout << "Enter some integers (enter 0 to quit): "<< endl;
cin >> n;
while (n != 0)
{
if (n > 0)
i += 1;
if (n < 0)
j += 1;
cin >> n;
}
cout << "Count of positive integers:" << i << endl;
cout << "Count of negative integers:" << j << endl;
return 0;
}
例3-20 输入一个正整数,求出它的所有因子(即:公因数)。
我编的:
#include<iostream>
using namespace std;
int main()
{·
int i , n;
cin >> i;
for (n = 1; n < i; n++)
{
if (i % n == 0)
cout << n << endl;
}
return 0;
}
有时最好还是注意配置一下前端的环境,毕竟这个还是直接联(关)系到使用者的用户体验
标准答案,源程序:
#include<iostream>
using namespace std;
int main()
{
int n;
cout << "Enter a positive integer:";
cin >> n;
cout << "Number" << n << " Factors ";
for (int k = 1; k <= n; k++)
if (n % k == 0)
cout << k << " ";
cout << endl;
return 0;
}
例3-21
编写程序输出以下图案。
本题具体的输入,探究研究过程,详见:
C语言日记 书P53 例 3-21:输出图案_宇 -Yu的博客-CSDN博客
标准答案,源程序:
#include<iostream>
using namespace std;
int main()
{
const int N = 4;//输出前4行图案
for (int i = 1; i <= N; i++)
{
for (int j = 1; j <= 30; j++)
cout << ' ';
//在图案左侧空 30列
for (int j = 1; j <= 8 - 2 * i; j++)
cout << ' ';
for (int j = 1; j <= 2 * i - 1; j++)
cout << '*';
cout << endl;
}
//输出后 3 行图案
for (int i = 1; i <= N - 1; i++)
{
for (int j = 1; j <= 30; j++)
cout << ' ';
//在图案左侧空 30列
for (int j = 1; j <= 7 - 2 * i; j++)
cout << '*';
cout << endl;
}
return 0;
}