1.输出100-200之间所有的素数;
2.打印九九乘法表;
3.冒泡排序——一维数组;
4.冒泡排序——二维数组;
1.输出100-200之间所有的素数;
1.1)提示:素数又叫质数。素数,指的是“大于1的整数中,只能被1和这个数本身整除的数”。
1.2)思路:
1.2.1)循环100-200,设为i;
1.2.2)每一趟使用2~(i/2)跟i取余,若能除得尽,说明不是素数,跳出循环,丢弃这个i;
1.2.3)若不能除得尽,则代表肯定是素数,此时输出该数字。
1.2.4)每一趟里面的被除数j,是全局变量,因此要在一开始就声明。否则在(i/2)循环中,跳出循环 j 就没有用了。
#include <stdio.h>
int main(){
int j;
for(int i=100;i<=200;i++){
for(j=2;j<=i/2;j++){
if(i%j==0){
break;
}
}
if(j>i/2){
printf("%d ",i);
}
}
printf("\n");
return 0;
}
2.打印九九乘法表
1.1)提示:
1.2)思路:
1.2.1)循环9行,即右因数i;
1.2.2)循环i次,即左因数;
1.2.3)输出乘法算式,即可
#include <stdio.h>
int main(){
int i,j;
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
printf("%d*%d=%d,",j,i,j*i);
}
printf("\n");
}
return 0;
}
3.冒泡排序——一维数组;
3.1)题目:输入10个整数,用冒泡排序法进行排序。输出排序结果。
#include <stdio.h>
#define Max 10
int main(){
int arr[Max], tmp;
printf("请输入10个数:\n ");
for(int i=0; i<Max; i++){
scanf("%d", &arr[i]);
}
// 1. 从数组中找出最大的元素(设置第一个元素为最大的元素)
for(int i=0; i<Max-1; i++){ //循环9趟;
for(int j=0; j<Max-1-i; j++){ //每一趟进行9-i次比较;
if(arr[j] > arr[j+1]){ //如果左边大于右边,则进行值交换;
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
printf("排序完成: ");
for(int i=0; i<Max; i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
4.冒泡排序——二维数组;
4.1)题目:自定义一个3行4列二维数组,用冒泡排序法求出最大值,输出下标及最大值;
#include <stdio.h>
#define row 3
#define col 4
int main(){
int arr[row][col] = {1,4,7,2,5,8,3,6,9,11,10,0};
int nMax = arr[0][0]; //假设最大值是数组的第一个数;
int x, y;
for(int i=0; i<row;i++){
for(int j=0; j<col; j++){
if(nMax <= arr[i][j]){ //如果数组元素比最大值大;
nMax = arr[i][j]; //则将数组元素赋值给最大值(全局变量)。
x = i; //i,j的值跳不出循环,
y = j; //需将i,j的值赋值给全局变量x,y。
}
}
}
printf("最大值为: arr[%d][%d] = %d\n", x, y, nMax);
return 0;
}