C语言问题,这个程序编译无误,但是运行时候就会出错无法运行
#include<stdio.h>#include<string.h>intmain(){chara[20],b[20],c[40];inti,j,k,max,index...
#include<stdio.h>
#include<string.h>
int main()
{
char a[20],b[20],c[40];
int i,j,k,max,index,n1,n2;
char C=' ';
for(i=0;C!='\n';i++){
scanf("%d%c",&a[i],&C);
}
a[i]='\0';
for(i=0,C=' ';C!='\n';i++){
scanf("%d%c",&b[i],&C);
}
b[i]='\0';
n1=strlen(a),n2=strlen(b);
for(i=0,j=0;i<n1;j=0,i++){
for(;j<n2;j++){
if(a[i]==b[j])
break;
}
if(j==n2){
c[k]=a[i];
k++;
}
}
for(i=0,j=0;i<n2;j=0,i++){
for(;j<n1;j++){
if(b[i]==a[j])
break;
}
if(j==n1){
c[k]=b[i];
k++;
}
}
c[k]='\0';
for(i=0,j=0;i<k-1;i++){
max=c[i],index=i;
for(j=i+1;j<k;j++)
if(c[j]>max)
max=c[j],index=j;
if(index!=i)
c[index]=c[i],c[i]=max;
}
puts(c);
return 0;
}
从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集“异或”)。
【输入形式】
首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,行末有回车换行。
【输出形式】
按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。
【样例输入】
5 1 4 32 8 7 9 -6
5 2 87 10
1
【样例输出】
87 32 10 9 8 7 4 2 -6 展开
#include<string.h>
int main()
{
char a[20],b[20],c[40];
int i,j,k,max,index,n1,n2;
char C=' ';
for(i=0;C!='\n';i++){
scanf("%d%c",&a[i],&C);
}
a[i]='\0';
for(i=0,C=' ';C!='\n';i++){
scanf("%d%c",&b[i],&C);
}
b[i]='\0';
n1=strlen(a),n2=strlen(b);
for(i=0,j=0;i<n1;j=0,i++){
for(;j<n2;j++){
if(a[i]==b[j])
break;
}
if(j==n2){
c[k]=a[i];
k++;
}
}
for(i=0,j=0;i<n2;j=0,i++){
for(;j<n1;j++){
if(b[i]==a[j])
break;
}
if(j==n1){
c[k]=b[i];
k++;
}
}
c[k]='\0';
for(i=0,j=0;i<k-1;i++){
max=c[i],index=i;
for(j=i+1;j<k;j++)
if(c[j]>max)
max=c[j],index=j;
if(index!=i)
c[index]=c[i],c[i]=max;
}
puts(c);
return 0;
}
从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集“异或”)。
【输入形式】
首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,行末有回车换行。
【输出形式】
按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。
【样例输入】
5 1 4 32 8 7 9 -6
5 2 87 10
1
【样例输出】
87 32 10 9 8 7 4 2 -6 展开
2个回答
展开全部
#include<stdio.h>
#include<string.h>
int main()
{
char a[20],b[20],c[40];
int i,j,k,max,index,n1,n2;
char C=' ';
for(i=0;C!='\n';i++){
scanf("%d%c",&a[i],&C);
}
a[i]='\0';
for(i=0,C=' ';C!='\n';i++){
scanf("%d%c",&b[i],&C);
}
b[i]='\0';
n1=strlen(a),n2=strlen(b);
for(i=0,k=0;i<n1;j=0,i++){//k没有初始化
for(j=0;j<n2;j++){//每次j都要初始化
if(a[i]==b[j])
break;
}
if(j==n2){
c[k]=a[i];
k++;
}
}
for(i=0,j=0;i<n2;j=0,i++){
for(;j<n1;j++){
if(b[i]==a[j])
break;
}
if(j==n1){
c[k]=b[i];
k++;
}
}
c[k]='\0';
for(i=0,j=0;i<k-1;i++){
max=c[i],index=i;
for(j=i+1;j<k;j++)
if(c[j]>max)
max=c[j],index=j;
if(index!=i)
c[index]=c[i],c[i]=max;
}
//puts(c); 输出整数,不可以省事儿
for(i=0;i<k;i++) printf("%d ",c[i]);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询