有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下:

供稿:hz-xin.com     日期:2025-01-13
用C语言编写程序 用键盘输入字符串 abcd 程序则输出: hello.abcd 应该怎样编写 麻烦知道的把详细步骤写下

#include

main(int argc, char *argv[])
{
char tmp[512];

memset(tmp, 0, sizeof(tmp));
printf("请输入:
");
scanf("%s", tmp);
printf("输出结果是: hello.%s
", tmp);

}

#include //函数返回s char *fun(char *a,char *b,char *s){int i=0;char *p;while(*a!=0 && *b!=0){s[i++]=*a++;s[i++]=*b++;}if (*a==0) p=b; else p=a;while(*p!=0) s[i++]=*p++;s[i]=0;return s;}int main(){char s[100];char *a="abcd",*b="abcd",*p;p=fun(a,b,s);printf("%s
",p); //也可以 printf("%s",s);}

典型的排列组合的问题啊。

这个程序不错的:
#include<stdio.h>
void main(void)
{
char ch[]="ABCD";
int i,j,k,n=4;
int m=0;

for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
{
if(i!=j&&j!=k&&i!=k)
{
printf("%c%c%c\n",ch[j],ch[k],ch[i]);
m++;
}
}
}
}
printf("==%d==\n",m);
getchar();
}

一共是24个

#include<stdio.h>
void main(void)
{
char ch[]="ABCD";
int i,j,k,n=4;
int m=0;
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
{
if(i!=j&&j!=k&&i!=k)
{
printf("%c%c%c\n",ch[j],ch[k],ch[i]);
m++;
}
}
}
}
printf("==%d==",m);
getch();
}

写了个~~

你自己看看 希望对你有用

========================================================

#include<stdio.h>

void out(char a,char b,char c);

int main()
{

out('A','B','C');
out('A','B','D');
out('A','C','D');
out('B','C','D');

return 0;

}

void out(char m,char n,char t)
{
char c[3];

c[0]=m;c[1]=n;c[2]=t;

printf("%c%c%c\n",c[0],c[1],c[2]);
printf("%c%c%c\n",c[0],c[2],c[1]);
printf("%c%c%c\n",c[1],c[0],c[2]);
printf("%c%c%c\n",c[1],c[2],c[0]);
printf("%c%c%c\n",c[2],c[0],c[1]);
printf("%c%c%c\n",c[2],c[1],c[0]);

}

//试试这个:)
#include<stdio.h>
void main(void)
{char ch[]="ABCD";
int i,j,k,n=4;
for(j=0;j<n;j++)//第一个字母
{
for(k=0;k<n;k++)//第二个字母
{
if(i!=j)
{
for(i=0;i<n;i++)//第三个字母
{if(i!=j&&i!=k)printf("%c%c%c\n",ch[j],ch[k],ch[i]);
}
}
}
}
getch();
}

#include"stdio.h"
int a[5]={0,0,1,2,3}, n=4,count=0; //如果你要增加个数.可以改变a[]和n;
char str[4]="ABCD";
void perm(int k)
{
int t,j;

if( k==n )
{for(j=1;j<=3;j++)
printf("%2c",str[a[j]]);
printf("\n");
return;
}
for(j=k;j<=n;j++)
{t=a[k];a[k]=a[j];a[j]=t;perm(k+1);t=a[k];a[k]=a[j];a[j]=t;}
}
main()
{
perm(1);
}
你看看这个吧.这个能把每一组不同顺序的字母列出来.

看看我这个浪费资源的程序吧
我想这是出题者想看到的
#include <stdio.h>
#include <string.h>
char array[4]={'A','B','C','D'};
char str[30][4];
int main(void)
{
int num=0;
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
for(int k=0;k<4;k++)
if((i!=j)&&(j!=k)&&(i!=k))
{
str[num][0]=array[i];
str[num][1]=array[j];
str[num][2]=array[k];
str[num][3]=0;
num++;
}
for(int h=0;h<num;h++)
printf("%s\n",str[h]);
return 0;
}

C语言输出图形 A AB ABC ABCD
include<stdio.h> int main(){int a,b,c;printf("请输入行数a:");scanf("%d",&a);for(b=1;b<=a;b++){for(c=1;c<=30-b;c++);for(c=1;c<=b;c++)printf("%c",64-a);printf("\\n");} while(1);return 0;}

用C语言编程序输出a,b,ab,c,d,ac,bc,abc,d,ad,bd,cd,abd,acd,
atmystate用的是递归方式实现,我用非递归实现如下:include <stdio.h>#include <string.h>#define STR"abcd"\/\/可以换成abcdef或其他字符,只要不超过8int main(){int i = 0;int j = 0;int temp = 0;char *p = STR;int len = strlen(STR);\/\/不包括末尾的'\\0'int totalCompose = 2...

a,b,c,d全排列C语言,C++,排列组合
\/\/既然那些你看不懂,就只能用这种方法了 include <stdio.h> using namespace std;int main(){ char a[4] = {'a','b','c','d'};\/\/定义字符数组 int i , j , k , l , cnt = 0;\/\/定义循环变量及当前为第cnt个组合 for(i = 0 ; i < 4 ; i++){\/\/a的所有可能位置 fo...

c语言,要求输入abc..wxyz对应输出efg..abcd,怎么做?谢谢!
题目意思就是在将字母a ->e;即变成其后的第4个字母,程序如下:include <stdio.h> main(){ char c;while((c=getchar()!='\\n'){if((c>='a'&&c<='z')){ c=c+4;if(c>'z')c=c-26;} printf("%c",c);} }

用c语言编写字母顺序推后3位,字母a将被推为字母d,字母b将被推为e...
include "stdio.h"void main(){ char str[20];int i,m=0;for(i=0;;i++){ scanf("%c",&str[i]);\/\/输入数据时不用任何符号分隔,如abcd回车 if(str[i]=='\\n') break;m++;} for(i=0;i<m;i++)printf("%c",str[i]);printf("\\n");for(i=0;i<m;i++)printf("%2c...

帮忙编写一个C语言程序,其中要用到strcmp,strcpy,strcat,strtev,strl...
include<iostream> include<string> using namespace std;void main(){ char str1[10] = "abcd";char str2[5] = "1234";cout<<"Length of 1st String:"<<strlen(str1)<<endl;switch(strcmp(str1,str2)){ case -1: cout<<"1st String is less than 2nd"; break;case 0:cout<<"...

C语言编写 输入aabbccdd 输出abcdabcd
include<stdio.h> int main(void){ int i;char str1[10] = {0};char str2[10] = {0};scanf("%s",str1);for(i = 0;i < 4;i++){ str2[i] = str1[i*2];str2[i+4] = str1[i*2+1];} printf("%s\\n",str2);return 0;} 需求不全只能临时这么写了,功能可以实现,...

C语言编程 字符的排序的代码比如输入badc输出abcd
");gets(str);char temp;int i,j;int len=strlen(str);for(i=0;i<len;i++)for(j=i;j<len;j++){ if(str[j]<str[i]){temp=str[j];str[j]=str[i];str[i]=temp;} } puts(str);} 我是用的选择排序法。你貌似比较急,所以就按最简单的方法编出来了,没考虑复杂度。

C语言中怎样设计一个输出四个不同字母所有组合情况的程序?
楼上对了。用四个循环,把字符串分成4个字符,不断组合,除去相同字符的组合。就这样简单的完成了回答。

c语言的 当输入为abcd时,写出下列程序的输出结果。
input: abcd output:aaa 当是a时,执行完Case 'a' :的printf()后,就又去执行后面的两个,所以会输出3个a, 下面与之同 bb c end! 当是d时,abc均不符合,故走default:其后有break;所以就只输出一个end!