丛铭俣 160809324 (作业7)

1,这个代码里新学到#include<string.h>和strlen(),只是知道这两个是配对用于一串字符,但其他作用和注意问题还不了解,等待老师解答。

#include<stdio.h>
#include<string.h> 
int main()
{
    char yourname[100];
    int i,all[26]={
        0
    };
    printf("请输入你的名字的拼音:");
    scanf("%s",yourname);
    for(i=0;i<strlen(yourname);i++)
        { 
            all[yourname[i]-'a']++;
        }    
    for(i=0;i<26;i++)
        { 
            printf("%c:%d个
",'A'+i,all[i]);
        }    
    return 0;
}

2,这里有一个小问题我一直没明白,为什么不能一次输入一些数字并用空格隔开,使用循环只能一次输入一个数字。

#include<stdio.h> 
int main()
{
    int a[10],b[10];
    int n,i,j=1;
    printf("请输入n的个数:
");
    scanf("%d",&n);
    printf("请逆序输入这些数:
");
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    for(i=n;i>0;i--)
        b[j++]=a[i];
        printf("顺序输出:"); 
    for(i=1;i<=n;i++)
        printf("%d ",b[i]);
}

3,

#include<stdio.h>
int main()
{
    int n,m,x,y,a[100],b[100];
    printf("第一组共有几个数:");
    scanf("%d",&n);
    printf("分别是:");
    int i,j;
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x);
        a[i]=x;
    }
    printf("第二组共有几个数:");
    scanf("%d",&m);    
    printf("分别是:");
    for(i=1;i<=m;i++)
    {
         scanf("%d",&y);
        b[i]=y;
    }
     printf("它们的共有:");    
     for(i=1;i<=n;i++)
     {
        for(j=1;j<=m;j++)
        {
             if(a[i]==b[j])
                printf("%d ",a[i]);
        }
     }    
    return 0;
}

4,有一个问题一直不明白,为什么输入很多很多数字后,反序输出的结果却不正确了,求解

#include<stdio.h>
int turn(int a)
{
    if(a==0)
        return 0;
    else
        {
            printf("%d",a%10);
            return turn(a/10);
        }    
}
int main()
{
    int b; 
    printf("请输入一些整数:");
    scanf("%ld",&b);
    printf("反序结果为:");
    turn(b);
    return 0;
}
原文地址:https://www.cnblogs.com/cmy531337670/p/6053048.html