通过调用自定义函数,实现输入一个一维数组的5个元素,将其逆序输出
#include <stdlib.h>
void reverse(int arr[], int n) {
int i, temp;
for (i = 0; i < n / 2; i++) {
temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
}
int main()
{
int n = 5;
int arr[5];
for (int i = 0; i < 5; i++) scanf("%d", & arr[i]);
reverse(arr, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
可以参考一下我的文章,数组那块的思考题,里面有说明,觉得不错的话可以点个赞和关注,持续分享嵌入式知识
#include <stdio.h>
#include <string.h>
#define N 20
int main(int argc, char *argv[])
{
char arr[N] = {0};
int i, j, n, ch;
printf("请输入:");
gets(arr);
n = strlen(arr);
i = 0;
j = n-1;
while (i < j) {
ch = arr[i];
arr[i] = arr[j];
arr[j] = ch;
i++;
j--;
}
puts(arr);
return 0;
}
参考如下:
#include<stdio.h>
void reverse(int a[], int len)
{
int i, temp;
for (i = 0; i <= len / 2 ; i++)
{
temp = a[i];
a[i] = a[len - i - 1];
a[len - i - 1] = temp;
}
}
int main()
{
int a[] = {8, 6, 5, 4, 1}, i;
int len = sizeof(a) / sizeof(a[0]);
printf("before : ");
for (i = 0; i < len; i++)
printf("%d ", a[i]);
printf("\n");
reverse(a, len);
printf("after : ");
for (i = 0; i < len; i++)
printf("%d ", a[i]);
return 0;
}
参考代码
#include <stdio.h>
void resolve_print(int arr[], int n) {
for (int i = n - 1; i >= 0; i--) {
printf("%d", arr[i]);
}
printf("\n");
}
int main() {
int data[] = {1, 2, 3, 4, 5};
resolve_print(data, 5);
return 0;
}
1)一行输出5个数
2)循环语句不限制
#include<stdio.h>
#include<math.h>
int main()
{
int a[1000],i=0,c=0;
char b;
do {
scanf("%d%c",&a[i],&b);
i++;
}while((int)b!=10);//输入若干个数直到换行结束
for(int j=0;j<i;j++)//对若干个数进行判断
{
if(a[j]>1)
{
int s=sqrt(a[j]),judge=1;
for(int k=2;k<=s;k++)
{
if(a[j]%k==0&&a[j]!=2)//满足条件为合数
{
judge=0;
break;
}
}
if(judge)
{
printf("%d",a[j]);
c++;
if(c%5==0)printf("\n");
else printf(" ");
}
}
else printf("输入的值不是除了1之外的正整数");
}
return 0;
}