一.X形图形
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。针对每行输入,输出用“*”组成的X形图案。
代码展示
#include <stdio.h>
int main() {int i=0;int j=0;int n=0;while( scanf("%d",&n)!=EOF){for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j||i==n-j-1){printf("*");}else {printf(" ");}}printf("\n");}}return 0;
}
代码解释
首先,我们要打印x,我们应该做出他的行和列,所以我们利用for循环打印行和列,接着我们要形成x的图案,并在其他位置放上空格,这就需要利用if语句进行判断。
我们可以看到一条斜线在行和列相等的地方,而另一条斜线我们要找到关系,可以看到在第0行*号在第4列,在第1行*号在第3列以此类推,所以我们可以得出i=n-j-1;这样打印*号的代码就出来了,那么同时,空格就是这条件之外的。因为我们要多组输入,所以要建立一个循环既while( scanf("%d",&n)!=EOF)
EOF本质其实就是-1;
结果展示
二.空心正方形
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。
代码展示
#include <stdio.h>int main() {int n=0;int i=0;int j=0;while (scanf("%d", &n) != EOF){ for(i=1;i<n+1;i++){for(j=1;j<n+1;j++){if(i==1||i==n||j==1||j==n){printf("* ");}else {printf(" ");}}printf("\n");}}return 0;
}
代码解释
首先,我们还是要利用for循环打印行和列,再利用if进行判断
我们可以看到,*号都分布在第一行第一列,最后一行最后一列,所以我们的条件就显而易见了i=1,j=1,i=n,j=n;最后在套上循环。
结果展示
三.逆序输出
输入10个整数,要求按输入时的逆序把这10个数打印出来。逆序输出,就是按照输入相反的顺序打印这10个数。
代码展示
#include <stdio.h>int main() {int i=0;int j=0;int arr[10]={0};for(i=1;i<=10;i++){scanf("%d",&arr[i]);}for(i=10;i>=1;i--){printf("%d ",arr[i]);}return 0;
}
代码解释
首先,我们要利用for循环输入10个数,并放在数组里,要求我们逆序打印,其实就是反过来打印,既然这样,我们就可以利用数组的下标,从大到小打印,这样就实现了逆序打印了。
结果展示
四.交换数组
将数组A中的内容和数组B中的内容进行交换。
代码展示
#include <stdio.h>int main()
{int arr1[10] = { 0 };int arr2[10] = { 0 };int i = 0;printf("请输入10个数字:>");for (i = 0; i < 10; i++){scanf("%d", &arr1[i]);}printf("请输入10个数字:>");for (i = 0; i < 10; i++){scanf("%d", &arr2[i]);}//交换for (i = 0; i < 10; i++){int tmp = arr1[i];arr1[i] = arr2[i];arr2[i] = tmp;}printf("交换后数组arr1为:");for (i = 0; i < 10; i++){printf("%d ", arr1[i]);}printf("\n");printf("交换后数组arr2为:");for (i = 0; i < 10; i++){printf("%d ", arr2[i]);}return 0;
}
代码解释
首先,我们先创建两个大小相同的数组,在利用for循环给两个数组输入值,因为我们要交换两个数组,就是将下标相同的两个数交换,所以我们要利用for循环,在循环中将下标相同的数交换,对于交换,我们先定义一个tmp,在相同下标下将arr1的值赋给tmp,再将arr2的值赋给arr1,之后在将tmp的值赋给arr2,这样就完成了交换。
结果展示
五.输入10个整数,求平均值
编写一个程序,从用户输入中读取10个整数并存储在一个数组中。然后,计算并输出这些整数的平均值。
代码展示
#include <stdio.h>
int main() {int numbers[10];int sum = 0;// 读取用户输入的整数并存储到数组中for (int i = 0; i < 10; i++) {scanf("%d", &numbers[i]);sum += numbers[i];}int average = sum / 10;printf("平均值为:%d\n", average);return 0;
}
代码解释
我们依旧是创立一个数组,并利用for循环向数组里输入数据,但在输入数据的同时,每输入一个数就让sum加上,就能求出输入所以数的和,最后将和去除输入的个数,就是他的平均值。
结果展示