解题思路:

定义两个字符数组,在第一个输入的数组中判断字符串中是否有元音字母,如果有则输入第二个数组。

然后由第二个数组执行元音字母的排序。

最后调用输出即可。

注意事项:

注意多语句别漏了花括号

参考代码:

#include <stdio.h>
#include <string.h>
int yuanyin(char a[],char b[])
{
	int i,j=0,k,l;
	char x;
	l=strlen(a);
	for(i=0;i<l;i++)
	{
		if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
		{
			b[j]=a[i];
			j++;
		}
	}
	b[j]='\0';
	k=strlen(b);
	for(i=0;i<k;i++)
	{
		for(j=i;j<k;j++)
		{
			if(b[i]>b[j])
			{
			x=b[j];b[j]=b[i];b[i]=x; 
			}
		 }
	}
    return 0;
}
int main()
{
	char a[100],b[100];
	gets(a);
	yuanyin(a,b);
	puts(b);
	return 0;
}


点赞(0)
 

0.0分

67 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 60 条评论

我好菜 3年前 回复TA
@小兴 switch-case的控制表达式只能是整数型
小兴 3年前 回复TA
#include <stdio.h>
#include <string.h>
#define N 100
int main()
{
	char str1[N];
	gets(str1);
	for(int i=0;i<N;i++)
	{
		switch(str1[i])
		{
			case 'a':
				putchar(str1[i]);
				//i++;
				break;
			case 'e':
				putchar(str1[i]);
				//i++;
				break;
			case 'i':
				putchar(str1[i]);
				//i++;
				break;
			case 'o':
				putchar(str1[i]);
				//i++;
				break;
			case 'u':
				putchar(str1[i]);
				//i++;
				break;
			default:
				//i++;
				break; 
		}
	}
	return 0;
}
为什么 我这样写过不了
3年前 回复TA
#include<stdio.h>
#include<string.h>
int t(char a[], char b[])
{
	int i, j, k = 0;
	i = strlen(a);
	for (j = 0; j <= i; j++)
		if (a[j] == 'a' || a[j] == 'e' ||
			a[j] == 'i' || a[j] == 'o' ||
			a[j] == 'u')
		{
			b[k] = a[j];
			k++;
		}
	b[k] = '\0';
	return 0;
}

int main()
{
	char a[100], b[100];
	gets(a);
	t(a, b);
	puts(b);
	return 0;
}
xisoni 3年前 回复TA
#include <stdio.h>
void f(char c){
 while((c=getchar())!='\n'){
		if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u')
	    printf("%c",c);
	}
}
int main(){
	char c;
	f(c);
}


我不理解,这个为什么一直时间超限啊
AkMoney 3年前 回复TA
#include<bits/stdc++.h>
using namespace std;
void TiQu(char a[])
{
	gets(a);
	for(int i=0;i<strlen(a);i++)
	{
		if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
		cout<<a[i];
	}
}
int main()
{
	char a[100000];
	TiQu(a);
}
热带飞鱼 3年前 回复TA
#include<stdio.h>
#include<string.h>

void look_for_vowel(char *p,char *pf);
int main(void)
{
  char str_1[100]={0},str_2[100]={0};
  gets(str_1);
  look_for_vowel(str_1,str_2);
  puts(str_2); 
}

void look_for_vowel(char *p,char *pf)
{
	int i,j=0;
	for(i=0; p[i]!='\0'; i++)
	{
		if(p[i]=='a' || p[i]=='e' || p[i]=='i' || p[i]=='o' || p[i]=='u' || p[i]=='A' || p[i]=='E' || p[i]=='I' || p[i]=='O' || p[i]=='U')
		{
			pf[j++]=p[i];
		}
	}
	pf[j]='\0'; 
}
热带飞鱼 3年前 回复TA
没考虑大写
渐入佳境. 3年前 回复TA
#include<stdio.h>
#include<string.h>
void fun(char a[]){
	int l;
	l=strlen(a);
	for(int i=0;i<l;i++){
		if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'){
			printf("%c",a[i]);
		}
	}
}
int main(){
	char a[10000];
	gets(a);
	fun(a);
}
御坂10032 3年前 回复TA
@少女祈祷中 puts()输出字符串时要遇到&#039;’也就是字符结束符才停止,所以要加上一句b[j] = &#039;&#039;;
少女祈祷中 3年前 回复TA
15行的 b[j]='\0';的作用是什么啊,没有它程序还是能正常运行。