Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C中接受数组中的多个字符串(使用Turbo C+;+;V3.0)并根据每个字符串包含的元音计数对其进行排序_C_Arrays_Character - Fatal编程技术网

如何在C中接受数组中的多个字符串(使用Turbo C+;+;V3.0)并根据每个字符串包含的元音计数对其进行排序

如何在C中接受数组中的多个字符串(使用Turbo C+;+;V3.0)并根据每个字符串包含的元音计数对其进行排序,c,arrays,character,C,Arrays,Character,我需要用户输入句子并将其存储在一个数组中,然后计算数组中每个索引的每个字符串中的元音数,并根据元音数打印排序后的o/p 例如: char z[10][10] // this will store sentences in array 但我不知道如何将每个句子与元音匹配 z[i]=='a' || (all vowels) 可以,但如何使每个字符串都在支票下 以下是我一直在尝试的代码: #include<stdio.h> #include<conio.h> void

我需要用户输入句子并将其存储在一个数组中,然后计算数组中每个索引的每个字符串中的元音数,并根据元音数打印排序后的o/p

例如:

char z[10][10]  // this will store sentences in array
但我不知道如何将每个句子与元音匹配

z[i]=='a' || (all vowels)
可以,但如何使每个字符串都在支票下

以下是我一直在尝试的代码:

#include<stdio.h>
#include<conio.h>

void main(){
    int i, j;
    int count;
    char z[10][100];
    clrscr();
    for(i = 0; i < 3; i++)
    {
        printf("\nEnter a string: ");
        //scanf("%[^\t\n]s", z[i]);
        gets(z[i]);
    }

    for (i = 0; i < 10; i++)
    {
        count = 0;
        for (j = 0; j < 100; j++)
        {
            if (z[i][j] == 'a')
            {
                count++;
            }
        }
    }

    printf("%d",count);
    getch();
}
#包括
#包括
void main(){
int i,j;
整数计数;
char z[10][100];
clrsc();
对于(i=0;i<3;i++)
{
printf(“\n输入字符串:”);
//scanf(“%[^\t\n]s”,z[i]);
得到(z[i]);
}
对于(i=0;i<10;i++)
{
计数=0;
对于(j=0;j<100;j++)
{
如果(z[i][j]=='a')
{
计数++;
}
}
}
printf(“%d”,计数);
getch();
}

您可以简单地迭代数组的每个元素和每个字符串的每个字符

int totalVocalCount = 0;
int numberOfWords = 10;
int numberOfLetters = 100;
for(int i = 0; i < numberOfWords; i++)
{
    int wordVocalCount = 0;
    for(int j = 0; j < numberOfLetters; j++)
    {
        if(z[i][j] == 'a' || ... || z[i] == 'u')
            wordVocalCount++;
            totalVocalCount++;
    }
    printf("word %s has %d vocals",z[i], wordVocalCount);
}
printf("all words together have %d vocals",totalVocalCount);
int totalVocalCount=0;
int numberOfWords=10;
int numberOfLetters=100;
for(int i=0;i
#包括
#包括
#包括
int main(){
int i,j;
char z[10][100];
char ch;
int元音[10]={0};
整数秩[10];
int n=3;
clrsc();
对于(i=0;i对于(i=0;ii)尝试了建议的代码@Theolodis#include#include void main(){int i,j;int count=0;char z[10][100];clrsc();对于(i=0;i@user3575666老兄,你在开玩笑吗?我编辑了我的答案这是代码(我如何注释代码-使其看起来像代码?)35; include#include void main(){int i,j;int count=0;char z[10][100];clrsc();for(i=0;i@user3575666我给你写了一个你必须集成的示例。当然它不会编译,因为我不知道你有多少个单词。但是现在我改进了答案,使它更容易集成,我希望。@user3575666请在你的问题中发布代码,这样会更好地阅读。
#include <stdio.h>
#include <conio.h>
#include <ctype.h>

int main(){
    int i, j;
    char z[10][100];
    char ch;
    int vowels[10]={0};
    int rank[10];
    int n = 3;

    clrscr();
    for(i = 0; i < n; i++){
        printf("\nEnter a string: ");
        //scanf("%99[^\n]", z[i]);
        gets(z[i]);
        for(j=0;ch=z[i][j];++j){
            ch = tolower(ch);
            if(ch == 'a' || ch == 'i' || ch == 'u' || ch == 'e'|| ch == 'o')
                vowels[i] += 1;
        }
        rank[i] = i;
    }
    //sort
    for(i=0;i<n-1;++i){
        for(j=i+1;j<n;++j){
            if(vowels[i] < vowels[j]){
                int tmp   = rank[i];
                rank[i]   = rank[j];
                rank[j] = tmp;
            }
        }
    }

    for(i=0;i<n;++i){
        int pos = rank[i];
        printf("%d : %s\n", vowels[pos], z[pos]);
    }
    getch();
    return 0;
}