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道(C语言经典100例36)

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);//想想如果五个一行应该怎么输出 }

题目 37

题目:对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]); }

题目 38

题目:求一个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); }

题目 39

题目:有一个已经排好序的数组。先输入一个数,要求按原来的规律将它插入数组中。

程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

(这里程序分析中说的是从小到大的情况,如果另一种情况怎么办?)

#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]); }

题目 40

题目:将一个数组逆序输出。

程序分析:找对称轴,用当前位置的一个与从后面数的对应位置的一个交换。

#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

    分享
    投诉
    首页