数组元素的倒置。将程序补充完整。 #include<stdio.h> N 6 int main() { int a[N]; int i,t; printf("请输入%d个数:\n",N); for(i=0;i<N;i++){ scanf("%d",&a[i]); } printf("原始顺序:\n"); for(int i=0;i<N;i++){ printf("%5d",a[i]); } printf("\n"); for(i=1;i<= ;i++){ t=a[i-1]; ; =t; } printf("倒置后顺序:\n"); for(int i=0;i<N;i++){ printf("%5d", ); } printf("\n"); return 0; } 第1空: 第2空: 第3空: 第4空: 第5空:
时间: 2024-01-14 18:04:17 浏览: 14
将程序补充完整如下:
```c
#include<stdio.h>
#define N 6
int main() {
int a[N];
int i,t;
printf("请输入%d个数:\n",N);
for(i=0;i<N;i++){
scanf("%d",&a[i]);
}
printf("原始顺序:\n");
for(int i=0;i<N;i++){
printf("%5d",a[i]);
}
printf("\n");
for(i=1;i<=N/2;i++){
t=a[i-1];
a[i-1]=a[N-i];
a[N-i]=t;
}
printf("倒置后顺序:\n");
for(int i=0;i<N;i++){
printf("%5d",a[i]);
}
printf("\n");
return 0;
}
```
第1空:N/2
第2空:t
第3空:a[i-1]
第4空:a[N-i]
第5空:a[i]
相关问题
将下列代码中数组初始化改为用户scanf输入#include <stdio.h> #define ROW 3 #define COL 3 void sztj(); void waty(); void nqst(); void nujs(); void okoj(); void zzpj(); void jijj(); int main() { char ch; abc: printf("******数组应用系统*******\n"); printf("1.定义数组并输入\n
请输入一个3*3的整数数组:\n");
int arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
scanf("%d",&arr[i][j]);
}
}
printf("2.数组输出\n");
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",arr[i][j]);
}
printf("\n");
}
printf("\n");
printf("3.数组的转置\n");
sztj(arr);
printf("4.数组的位移\n");
waty(arr);
printf("5.数组的逆序\n");
nqst(arr);
printf("6.数组的倒置\n");
nujs(arr);
printf("7.数组的扎扎平\n");
zzpj(arr);
printf("8.数组的基偶交换\n");
jijj(arr);
printf("是否继续执行程序(Y/N)?");
scanf(" %c",&ch);
if(ch=='Y'||ch=='y'){
goto abc;
}
else{
printf("程序结束!");
}
return 0;
}
void sztj(int arr[][COL]){
int new_arr[COL][ROW];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[j][i]=arr[i][j];
}
}
for(int i=0;i<COL;i++){
for(int j=0;j<ROW;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
void waty(int arr[][COL]){
int n;
printf("请输入位移的列数:\n");
scanf("%d",&n);
int new_arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[i][(j+n)%COL]=arr[i][j];
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
void nqst(int arr[][COL]){
int new_arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[ROW-1-i][COL-1-j]=arr[i][j];
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
void nujs(int arr[][COL]){
int new_arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[ROW-1-i][j]=arr[i][j];
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
void zzpj(int arr[][COL]){
int new_arr[ROW*COL];
int k=0;
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[k++]=arr[i][j];
}
}
for(int i=0;i<ROW*COL;i++){
printf("%d ",new_arr[i]);
}
printf("\n\n");
}
void jijj(int arr[][COL]){
int new_arr[ROW][COL];
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
new_arr[i][j]=arr[i][j];
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
if(new_arr[i][j]%2==0){
new_arr[i][j]=new_arr[i][j]/2;
}
else{
new_arr[i][j]=new_arr[i][j]*2;
}
}
}
for(int i=0;i<ROW;i++){
for(int j=0;j<COL;j++){
printf("%d ",new_arr[i][j]);
}
printf("\n");
}
printf("\n");
}
查错#include<stdio.h> #include<stdlib.h> typedef int Elemtype ; typedef struct LNode{ Elemtype data ; struct LNode *next ;}LNode,LinkList ; void CreatList_H(LinkList &L, int n){ L=(LinkList)malloc(sizeof(struct LNode)) ; LinkList P ; L->next=NULL ; int i ; for(i=1;i<=n;i++){ P=(LinkList)malloc(sizeof(struct LNode)) ; scanf("%d",&P->data) ; P->next=L->next ; L->next=P ; } } void ReverseList(LinkList &L,int n){ LinkList P,R ; P=L->next->next ; R=L->next ; int i ; for(i=1;i<n;i++){ R->next=P->next ; P->next=L->next ; L->next=P->next ; P=R->next ; } } void PrintList(LinkList L, int n) { int i ; for(i=1;i<=n;i++){ L=L->next ; printf("%d\n",L->data) ; } } int main(){ LinkList L; int n ; scanf("%d",&n); if(n==0) { printf("list is empty") ; return 0 ; } CreatList_H( L, n) ; ReverseList( L, n); PrintList( L, n) ; return 0 ; }
该代码没有明显的语法错误,但是在输入数据时没有处理输入数据个数为0的情况,需要添加判断。另外,在链表倒置时需要注意链表为空的情况。以下是修改后的代码:
```
#include<stdio.h>
#include<stdlib.h>
typedef int Elemtype ;
typedef struct LNode{
Elemtype data ;
struct LNode *next ;
}LNode,LinkList ;
void CreatList_H(LinkList& L, int n){
L=(LinkList)malloc(sizeof(struct LNode)) ;
LinkList P ;
L->next=NULL ;
int i ;
for(i=1;i<=n;i++){
P=(LinkList)malloc(sizeof(struct LNode)) ;
scanf("%d",&P->data) ;
P->next=L->next ;
L->next=P ;
}
}
void ReverseList(LinkList& L,int n){
if(L==NULL || L->next==NULL || n==1){
return ;
}
LinkList P,R ;
P=L->next->next ;
R=L->next ;
int i ;
for(i=1;i<n;i++){
R->next=P->next ;
P->next=L->next ;
L->next=P ;
P=R->next ;
}
}
void PrintList(LinkList L, int n) {
if(n==0) {
printf("list is empty") ;
return ;
}
int i ;
for(i=1;i<=n;i++){
L=L->next ;
printf("%d\n",L->data) ;
}
}
int main(){
LinkList L=NULL;
int n ;
scanf("%d",&n);
CreatList_H( L, n) ;
ReverseList( L, n);
PrintList( L, n) ;
return 0 ;
}
```