c语言数组编程题

c语言数组编程题,第1张

思路:按题意,用指针遍历字符串st,使用标识碰圆变量flag首次遇到字母置1并计数,遇到空格时flag重置0。

注意:本程序不考虑夹杂非字母的情况,请规范输入。比蔽芹如“I am a stu**dent”,stu**dent将作为一个单词识别。

下面是代码:

#include <stdio.h>

int GetWordNum(char st[])

{

  char *p=st

  int cnt=0,flag=0

  while(*p)

  {

      if(flag==0 &&((*p>='a' &&*p<='z') || (*p>='A' &&*p<='Z')))

          cnt++,flag=1

      if(flag &&*p==' ')

   宏吵毕       flag=0

      p++

  }

  return cnt

}

int main()

{

  char str[]="I am a student"

  printf("%s共计单词个数%d\n",str,GetWordNum(str))

  return 0

}

int main() {

    int num1[20], num2[20], num3[20], num4[20]

    int i,j,j1=0,j2=0,k1=0,k2=0,tmp,flag=0

    char a=0

    while(a!= '\n') {

        scanf("%d",&num1[j1++])

        a= getchar()

    }

    a=0

    while(a != '\n'){

        scanf("%d", &num2[j2++])

        a= getchar()

    }

    for (i = 0 i <j1 i++) {

        for (j = 0 j<j2 j++) {

            if (num1[i] == num2[j]) {

                flag=1

            }

        }

        if(flag){

            局昌培num3[k1++]=num1[i]

        }else{

            num4[k2++]=num1[i]

        }

        flag=0

    }      

    for (i = 0 i <j2 i++) {

        for (j = 0 j <j1 j++) {

            if (num2[i] == num1[j]) {

                flag=1

            }

        }

        if(!flag){

            num4[k2++]=num2[i]

        }

        flag=0

    }

    for (i = 0 i < (k2-1) i++) {

        for (j = i+1j < k2 j++) {

            if (num4[i] > num4[j]) {

                tmp = num4[i]

                num4[i] = num4[j]

                num4[j] = tmp

            }

        }

    }

    for (i = 0 i < k2 i++) {

        printf("%d ", num4[i])

 桐唯   }

    printf ("\n")

    for (i = 0 i < (k1-1) i++) {

        for (j = i+1j < k1 j++) {

           迅亮 if (num3[i] > num3[j]) {

                tmp = num3[i]

                num3[i] = num3[j]

                num3[j] = tmp

            }

        }

    }

    for (i = 0 i < k1 i++) {

        printf("%d ", num3[i])

    }

    return 0

}

定义数组n[5]时,前三个元素前手n[0]~n[2]都赋值为0,后两个元素n[3]和n[4]没有涉及,但系统自动默认给它们赋值也是0。

后面的循环只对n[0]~n[2]重新分别赋值为1、2、3,亦未对后面两个元素赋值,所以n[3]和n[4]的值都仍然是0。

最后打印n[3]的值,当然盯悔雹输出的是0。

故,程序运行的结果是输出一个0。凯帆


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12308406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存