几个c的简单小问题~~不会调试~汗
第一题
#include<stdio.h>
void main()//插入一个数后,按排序放在适当位置
{int a[11]={1,4,6,9,21,29,32,35,40,41};
int i,j,n,m;
printf("输入一个要插入的数:\n");
scanf("%d",&m);
for(i=0,j=9;i<=j;i++,j--)
{if((a[i]<m)&&(a[j]>m))
continue;
else if((a[i]>m)&&(a[j]>m))
{for(n=9;n>=i;n--)
a[n+1]=a[n];
a[i]=m;
}
else if((a[i]<m)&&(a[j]<m))
{ if(j==9)
a[10]=m;
else
{for(n=9;n>j;n--)
a[n+1]=a[n];
a[n]=m;
}
}
}
printf("插入新数后数列为:\n");
for(i=0;i<=10;i++)
printf("%d,",a[i]);
}
第二题、
#include<stdio.h>//魔方阵:每行、每列、对角线之和相等1~n*n的数
#define N 3
void main()
{int a[N+1][N+1];
int m,n,i,j;
a[1][(N+1)/2]=1;
m=1;n=(N+1)/2;
for(i=2;i<=(N*N);i++)
{if((m==1)&&(n==N))
{a[N][1]=i;
m=N;
n=1;
}
else if(m==1)
{a[N][n+1]=i;
m=N;
n=n+1;
}
else if(n==N)
{a[m-1][1]=i;
m=m-1;
n=1;
}
else
{a[m-1][n+1]=i;
m=m-1;
n=n+1;
}
}
for(i=1;i<=N;i++)
{for(j=1;j<=N;j++)
printf("%d",a[i][j]);
printf("\n");
}
printf("\n");
}
第三题
#include<stdio.h>
void main()//比较两个字符串,return用法不会!!
{int j;
int com();
j=com();
printf("比较结果为:%d\n",j);
}
int com()
{int i;
char s1[40],s2[40];
printf("输入字符串s1:\n");gets(s1);
printf("输入字符串s2:\n");gets(s2);
while(s1[i]!='\0'&&s2[i]!='\0')
{if(s1[i]==s2[i])
i++;
else if(s1[i]>s2[i])
return(1);
else if(s1[i]<s2[i])
return(-1);
}
if(s1[i]=='\0'&&s2[i]=='\0')
return(0);
else if(s1[i]=='\0'&&s2[i]!='\0')
return(-1);
else if(s1[i]!='\0'&&s2[i]=='\0')
return(1);//前面一样,字符串长的大。
}
、
第四题
#include<stdio.h>
void main()//复制字符串
{char s1[40],s2[40];
int i=0;
printf("输入字符串s2:\n");
gets(s2);
while(s2[i]!='\n')
s1[i++]=s2[i++];
s1[i]='\0';
printf("输出字符串s1:\n%s\n",s1);
}