# C语言经典习题100例（八）36-40

## 习题36

```#include <stdio.h>
#include <math.h>

int main(){
int isPrime(int n);
int i, count = 0;
for(i = 2; i < 101; i++){
if(isPrime(i)){
count++;
printf("%5d", i);
if(count % 5 == 0){
printf("\n");
}
}
}

return 0;
}

int isPrime(int n){
int i, prime = 1;
for(i = 2; i <= sqrt(n); i++){
if(n % i == 0){
prime = 0;
break;
}
}
return prime;
}```

```    2    3    5    7   11
13   17   19   23   29
31   37   41   43   47
53   59   61   67   71
73   79   83   89   97```

## 习题37

```#include <stdio.h>

int main(){
void sort(int ua[], int l);
int i, unsorted_list[] = {12, 54, 81, 3, 72, 47, 99, 32, 41, 62}, *p;
printf("Unsorted:\n");
for(i = 0; i < 10; i++){
printf("%d ", unsorted_list[i]);
}
p = unsorted_list;
int length = sizeof(unsorted_list) / sizeof(unsorted_list[0]);
sort(p, length);
printf("\nAfter sorted:\n");
for(i = 0; i < 10; i++){
printf("%d ", unsorted_list[i]);
}

return 0;
}

void sort(int ua[], int l){
int i, j, temp;
for(i = l - 2; i >= 0; i--){
for(j = 0; j <= i; j++){
if(ua[j] > ua[j + 1]){
temp = ua[j];
ua[j] = ua[j + 1];
ua[j + 1] = temp;
}
}
}
}```

```Unsorted:
12 54 81 3 72 47 99 32 41 62
After sorted:
3 12 32 41 47 54 62 72 81 99```

## 习题38

```#include <stdio.h>

int main(){
int a[3][3] = {0}, i, j, sum = 0;
printf("Please input the 9 numbers:\n");
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
scanf("%d", &a[i][j]);
}
}
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
if(i == j){
sum += a[i][j];
}
}
}
printf("Sum = %d\n", sum);

return 0;
}```

```Please input the 9 numbers:
1 2 3 4 5 6 7 8 9
Sum = 15```

## 习题39

```#include <stdio.h>

int main(){
int a[11] = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 0}, num, i, j;
printf("Please input the number to insert:\n");
scanf("%d", &num);
if(num >= a[9]){
a[10] = num;
}else{
i = 9;
while(a[i] > num){
i--;
}
for(j = 10; j > i + 1; j--){
a[j] = a[j - 1];
}
a[i + 1] = num;
}
for(i = 0; i < 11; i++){
printf("%d ", a[i]);
}

return 0;
}```

```Please input the number to insert:
50
1 4 9 16 25 36 49 50 64 81 100```

## 习题40

```#include <stdio.h>
#define N 10

int main(){
int a[N] = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100}, num, i, j, temp;
printf("Normal order:\n");
for(i = 0; i < 10; i++){
printf("%d ", a[i]);
}
for(i = 0; i < N / 2; i++){
temp = a[i];
a[i] = a[ N - 1 - i];
a[ N - 1 - i] = temp;
}
printf("\nReversed order:\n");
for(i = 0; i < 10; i++){
printf("%d ", a[i]);
}

return 0;
}```

```Normal order:
1 4 9 16 25 36 49 64 81 100
Reversed order:
100 81 64 49 36 25 16 9 4 1```

0 条评论

• ### C语言经典习题100例（五）21-25

实现思路： 方式一——分成两部分： 先把图形分成两部分来看待，前四行一个规律，后三行一个规律，利用双重for循环，第一层控制行，第二层控制列。 代码如下：

• ### C语言经典习题100例（七）31-35

实现思路： 使用switch语句，如果第1个字母一样，则判断用情况语句或if语句判断第2个字母。 也可以使用条件判断语句，实现相近。

• ### C语言经典习题100例（三）11-15

实现思路： 从第1个月起，兔子对数分别为1、1、2、3、5、8、13、21…，显然是斐波拉契数列。

• ### acmer之路（3）四月第一周日志

这一周加入了院足球队，好久都没有感受到在赛场上奔腾的感觉了。不过正好赶上清明，因此也算有充足的时间来码代码。这个月一共码了20题，排名终于冲进了四万名。

• ### Contest100000569 – 《算法笔记》2.5小节——C/C++快速入门->数组

Time Limit: 1 Sec Memory Limit: 12 MB Submit: 3559 Solved: 2146 Description ...

• ### codeForces #575 div3

A - Three Piles of Candies 题意：就是给了三堆糖，两个人，每人哪一堆，然后第三堆用来补充，最终要达到两个人的糖的数量一样多。 思路...

• ### 从零开始学算法：高精度计算

前言:由于计算机运算是有模运算,数据范围的表示有一定限制,如整型int(C++中int 与long相同)表达范围是(-2^31~2^31-1),unsigned...

• ### C语言经典程序

其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/

• ### 长沙理工新生赛

https://ac.nowcoder.com/acm/contest/3530/A