一.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加上,就能求出输入所以数的和,最后将和去除输入的个数,就是他的平均值。
结果展示