c语言入门100道(C语言经典100例36)
题目:求100之内的素数#include<cstdio>
bool is_prime(int x)
// 判断是不是素数的函数
// 素数定义为:只能被1和自己整除的数
{
for(int i = 2; i * i <= x;i )
if(x % i == 0)
return false;
return true;
}
int main()
{
for(int i = 2; i <= 100 ;i )
if(is_prime(i))
printf("%d\n",i);//想想如果五个一行应该怎么输出
}
,我来为大家讲解一下关于c语言入门100道?跟着小编一起来看一看吧!
c语言入门100道
题目 36题目:求100之内的素数
#include<cstdio>
bool is_prime(int x)
// 判断是不是素数的函数
// 素数定义为:只能被1和自己整除的数
{
for(int i = 2; i * i <= x;i )
if(x % i == 0)
return false;
return true;
}
int main()
{
for(int i = 2; i <= 100 ;i )
if(is_prime(i))
printf("%d\n",i);//想想如果五个一行应该怎么输出
}
题目:对10个数进行排序
程序分析:这里使用的冒泡排序,进行10-1次排序,每次都遍历整个数组,将当前位置与下一个位置数的大小进行比较
#include<cstdio>
int a[11];//注意数组下标从0开始
// 每个人习惯不同,我习惯从下标为1开始
void swap(int &x,int &y)//试试不加&会发生什么
{
int t = x;
x = y;
y = t;
}
int main()
{
for(int i = 1;i <= 10;i )
scanf("%d",&a[i]);
for(int i = 1;i < 10;i )//冒泡排序
for(int j = 1;j < 10;j )
if(a[j] < a[j 1])//从大到小排序
swap(a[j],a[j 1]);//交换两个位置的元素
// swap函数的头文件为iostream,这里不适合直接使用,故编写了一个函数
for(int i = 1;i <= 10;i )
printf("%d ",a[i]);
}
题目:求一个3*3矩阵对角线元素之和
程序分析:利用双重for循环控制输入二维数组,再将
累加后输出
#include<cstdio>
int a[4][4],ans;
//同样注意下标从0开始,且全局变量ans的初始值为0
int main()
{
for(int i = 1;i <= 3;i )
for(int j = 1;j <= 3;j )
scanf("%d",&a[i][j]);
for(int i = 1;i <= 3;i )
ans = a[i][i];
printf("%d", ans);
}
题目:有一个已经排好序的数组。先输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
(这里程序分析中说的是从小到大的情况,如果另一种情况怎么办?)
#include<cstdio>
int a[13] = {0,1,3,5,7,9,11,13,15,17,19};//第一位我们不用
int x;
int main()
{
scanf("%d",&x);
if(x > a[10])
a[11] = x;
else
{
for(int j = 9;j;j--)
if(x > a[j])
{
for(int i = 11;i >= j 1 ;i--)//为什么正向处理不行?
a[i] = a[i-1];
a[j 1] = x;
break;
}
}
for(int i = 1;i <= 11;i )
printf("%d ",a[i]);
}
题目:将一个数组逆序输出。
程序分析:找对称轴,用当前位置的一个与从后面数的对应位置的一个交换。
#include<cstdio>
// 这里使用下标为0或者1,代码写法会有哪里不一样?
// 动手试一试
int a[9] = {0,1,9,3,2,4,7,9,3};//从索引0开始考虑
//如果从索引1开始考虑要注意什么,建议动手试一试
void swap(int &x,int &y)
{
int t = x;
x = y;
y = t;
}
int main()
{
// 不理解的小伙伴可以参考这里:https://blog.csdn.net/i_pangpang/article/details/80197865
//计算数组长度: 这里要注意什么?
// 这里计算的数组长度,是我们实际存储的数的长度吗?
int len = sizeof(a) / sizeof(int);
printf("len is %d\n",len);
for(int i = 0;i < len / 2 ;i )
swap(a[i],a[len - i - 1]);
for(int i = 0;i < len ;i )
printf("%d ",a[i]);
}
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com