C语言,在线等,超急

第一题【问题描述】

从标准输入中读入两个字符集(不包含空格、制表符、回车换行等空白字符),字符集中的字符无序,且可能有重复字符。当两个字符集中字符完全相同(字符相同,字符若重复,重复个数也相同,顺序不一定相同),则两个字符集相同。编写一程序判断输入的两字符集是否相同:用1表示相同,用0表示不同。

【输入形式】

分别在两行上输入两个字符集(每个字符集中的字符个数不超过20,且第二个字符集输入结束后也有回车换行)。

【输出形式】

若两字符集相同,则输出1,否则输出0,然后按照从小到大的顺序分行输出第一个字符集中的字符及重复个数(以一个空格分隔)。

【样例输入1】

helloworld9
worldhello9

【样例输出1】

1
9 1
d 1
e 1
h 1
l 3
o 2
r 1
w 1
第二题【问题描述】

求二维整型数组的“最大点”。二维数组的“最大点”定义为:某个数是所在行的最大值,并且是所在列的最大值。注意:某行或某列上可能有多个“最大点”。

【输入形式】

从控制台读入二维数组。

第一行只有以空格分隔的两个正整数n和m(n,m<=10),n代表二维数组的行数,m代表二维数组的列数。

然后在后续n行上输入二维数组的元素,每行有m个以若干空格分隔的整数,代表二维数组在该行上的所有元素。

【输出形式】

向控制台输出二维数组的“最大点”,按行下标、列下标从小到大的顺序输出,每行一个,先输出“最大点”数值,再输出对应的行数、列数(行列都从1开始计数),以一个空格分隔。

【样例输入】

3 4

8 60 7 100

10 498 12 49

-71 132 4 85

【样例输出】

100 1 4
498 2 2

//更新了一下 之前以为就数字和英文字母
#include <stdio.h>
#include <string.h>
#include <string>
#include <math.h>
using namespace std;

int main()
{
    int n;
    char s1[100], s2[100];
    int num[2][300]={0};
    scanf("%s%s",&s1, &s2);
    for(int i = 0; i < strlen(s1); i++)
    {
            num[0][s1[i]]++;
    }
    for(int i = 0; i < strlen(s2); i++)
    {
            num[1][s2[i]]++;
    }
    int flag = 0;
    for(int i = 0; i < 300; i++)
    {
        if(num[0][i] != num[1][i])
            {
                flag++;
                break;
            }
    }
    if(flag)
        printf("0\n");
    else
        printf("1\n");
    for(int i = 0; i < 300; i++)
    {
        if(num[0][i])
            printf("%c %d\n", i, num[0][i]);
    }
    return 0;
}

#include <stdio.h>
#include <string.h>
#include <string>

using namespace std;

int main()
{
    int n, m;
    int i, j;
    int a[20][20];
    int maxx[20], maxy[20];
    scanf("%d%d", &n, &m);
    for(i = 0; i < n; i++)
        for(j = 0; j < m; j++)
        scanf("%d", &a[i][j]);
    for(i = 0; i < n; i++)
    {
        int ma = a[i][0];
        for(j = 0; j < m; j++)
        {
            if(a[i][j] > ma)
            {
                ma = a[i][j];
            }
        }
        maxx[i] = ma;
    }
    for(j = 0; j < m; j++)
    {
        int ma = a[0][j];
        for(i = 0; i < n; i++)
        {
            if(a[i][j] > ma)
            {
                ma = a[i][j];
            }
        }
        maxy[j] = ma;
    }
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < m; j++)
        {
            if(a[i][j] == maxx[i] && a[i][j] == maxy[j])
            {
                printf("%d %d %d\n", a[i][j], i+1, j+1);
            }
        }
    }
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-29

#include <>
void count(char s[],char a[])
{for(int i=0;s[i];i++)a[s[i]]++;
}
int main()
{ char s1[25],s2[25],a[127]={0},b[127]={0};
  int i;
  scanf("%s",s1); count(s1,a);
  scanf("%s",s2); count(s2,b);
  for(i=32;i<128;i++)if(a[i]!=b[i])break;
  printf("%d\n",i==128);
  for(i=32;i<128;i++)
    if(a[i])printf("%c %d\n",i,a[i]);
  return 0;
}

#include <stdio.h>
int main()
{int m,n,i,j,a[10][10],m1[10],m2[10]; 
 scanf("%d%d",&n,&m);
 for(i=0;i<n;i++)
  for(j=0;j<m;j++)
   scanf("%d",&a[i][j]);
 for(i=0;i<n;i++)m1[i]=a[i][0];
 for(j=0;j<m;j++)m2[j]=a[0][j];
 for(i=0;i<n;i++)
  for(j=0;j<m;j++)
   {if(a[i][j]>m1[i])m1[i] =a[i][j];
    if(a[i][j]>m2[j])m2[j] =a[i][j];
   }
 for(i=0;i<n;i++)
  for(j=0;j<m;j++)
    if(a[i][j]==m1[i]&&m1[i]==m2[j])printf("%d %d %d\n",a[i][j],i+1,j+1);
 return 0;
}

本回答被提问者和网友采纳
第2个回答  2018-11-29
对c一窍不通😂
第3个回答  2018-11-29
死也无欲无求我

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网