美文网首页
2013上机

2013上机

作者: Chris_PaulCP3 | 来源:发表于2019-02-27 19:41 被阅读0次

2013

1、输出五位以内的对称素数(✔)
2、有一个天平,有六种砝码,分别重1,2,3,5,10,20克,每种砝码各有5,3,2,2,1,1个,计算天平能称出的重量及种类

#include<stdio.h>
#define NUM 6 //砝码的种类
#define MAX 58 //最大能称量的重量+1
int main(int argc, char **argv) {
int m[NUM] = { 1,2,3,5,10,20 }, n[NUM] = { 5,3,2,2,1,1 }, i[NUM];
int flag[MAX] = { 0 };//用于统计能称的出种类(与统计字符串中的flag类似)
for (i[0] = 0; i[0] <= n[0]; i[0]++)
    for (i[1] = 0; i[1] <= n[1]; i[1]++)
        for (i[2] = 0; i[2] <=n[2]; i[2]++)
            for (i[3] = 0; i[3] <= n[3]; i[3]++)
                for (i[4] = 0; i[4] <= n[4]; i[4]++)
                    for (i[5] = 0; i[5] <= n[5]; i[5]++)
                    {
                        int sum = 0;
                        int j;
                        for (j = 0; j < NUM; j++) {
                            sum += i[j] * m[j];
                        }
                        flag[sum]++;
                        printf("称量重量为%d的一种方法为[%d %d %d %d %d %d]\n", sum,i[0],i[1],i[2],i[3],i[4],i[5]);
                    }
printf("称量范围为:");
int f;
for (f = 0; f < MAX; f++)
    if (flag[f])
        printf("%d ", f);
return 0;
}

3、输入n个由‘0’和‘1’组成的字符串(n由用户输入),规定字符串的比较规则如下:
a.字符串长的比较大
b.字符串等长的含‘0’多的小
c.字符串等长,且含‘1’相等,则两字符串相等

将输入的n个字符串按照上述规则升序排列。
注:字符串头文件<string.h>
字符串拷贝函数strcpy(char *destination, char *source)
动态分配内存 void * malloc(int n); 头文件<stdlib.h>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//还需要写一个check函数来检查输入是否正确 
int find_1(char ch[])
{
    int count = 0;
    int i = 0;
    while(ch[i] != '\0')
    {
        if(ch[i] == '1')
            count++;
        i++;
    }
    return count;
}
int main(int argc, char *argv[]) {
    int n;
    int i,j;
    char temp[10];
    printf("输入字符串个数:\n");
    scanf("%d",&n);
    //动态分配二维数组 
    char **ch = (char**)malloc(n*sizeof(char*));
    for(i = 0;i<n;i++)
    {
        ch[i] = (char*)malloc(10*sizeof(char));
    }
    printf("分配成功!");
    
    for(i=0; i<n; ++i)
        scanf("%s[^\n]",ch[i]);
    //选择排序 
    for(i=0; i<n-1; ++i)
        for(j=i+1; j<n ; ++j)
        {
            if(strlen(ch[i]) > strlen(ch[j]))
            {
                strcpy(temp, ch[i]);
                strcpy(ch[i], ch[j]);
                strcpy(ch[j], temp);
            }
            else if(strlen(ch[i]) == strlen(ch[j]) && find_1(ch[i]) > find_1(ch[j]))
            {
                //字符串交换 
                strcpy(temp, ch[i]);
                strcpy(ch[i], ch[j]);
                strcpy(ch[j], temp);
            }
        }
    printf("\n排序后: \n");
    for(i=0; i<n; ++i)
    {
        puts(ch[i]);
    }
    return 0;
}

相关文章

  • 2013上机

    2013 1、输出五位以内的对称素数(✔)2、有一个天平,有六种砝码,分别重1,2,3,5,10,20克,每种砝码...

  • 苏州大学2016及2013复试上机

    2016年保研上机题 题目   0. 请从服务器将两个数据文件input.txt和words.txt下载到本地电...

  • 上机

  • 上机

    今天早上,第一节是Android上机课,机房没有Android studio这个软件,所以就用eclipse来开发...

  • 上机

    今天一早起来上上机,学习android并敲代码,还是有收获的……

  • 《工程数学》作业列表

    《工程数学》上机1(习题).ipynb 《工程数学》上机2-牛顿法(习题).ipynb 《工程数学》上机3 - 矩...

  • 初到美国:是什么限制了我的想象力?

    上机,下机,等机,上机,下机,等机,上机,下机,等机,上机,下机……经过二三十小时的长途飞行,来到地球另一端,终于...

  • 情境感知技术:“她”离你不太远,你会爱上机器人么?

    你可以想象有一天人类居然会爱上机器人么? 2013年12月上映的电影《她》(《her》,又译《云端情人》)正上演了...

  • 上机课

    今天上机课,收获满满

  • 上机课

    今天上课看了老师给的安卓开发的书,根据书的内容敲了一些代码,但是不知道怎么回事,跟书上的就是不一样,我也很绝望。

网友评论

      本文标题:2013上机

      本文链接:https://www.haomeiwen.com/subject/jxqquqtx.html