(7)巩固一下C语言基础知识,谁动手,谁收获。

问题23:
 编程解决如下问题(50  分)  。  有一个数学等式:ABCD*E=  DCBA,式中的一个字母代表一位数字,试找出所有符合上述  要求的乘积式并打印输出。  

问题24:
编程解决如下问题(50  分)  。  请在整数  n=92081346718538  中删除  10个数字,  使得余下的数字按原次序组成的新数最 大。要求如下:  (1)整数  n和删除数字的个数“10”在源程序中完成赋值,程序直接输出运行结果; (2)程序结果输出先后被删除的数字(之间以逗号分隔)和删除后所得的最大数。  (提示:整数  n  可以以字符数组的方式定义、赋值和处理)

问题25:
编程解决如下问题(50 分) 。 在小于 10 的素数中有 3、5、7 组成的等差数列,在小于 30 的素数中有 11、17、23、 29 组成的等差数列。试找出区间[100,1000]内的素数构成的最大等差数列(即等差数列包 含的素数个数最多)并打印输出。

问题23实现代码:

/* author:宋金时 */
/* date:2011/11/05 */

#include "Stdio.h"
#include "Conio.h"

int main(void)
{
 int i,j,num,num2,e,arr[4];
  for(i=1000;i<10000;i++)
  {
    num = i;
    for(j=0;j<4;j++)
    {
      arr[j] = num%10;
      num/=10;
    }
    num2 = (arr[3]+arr[2]*10+arr[1]*100+arr[0]*1000);
    for(j=1;j<10;j++)
    {
       e = j;
       if(i*e==num2)
       {
       printf("%d*%d=%d\t",i,e,num2);
       }
    }
  }
  getch();
  return 0;
}

问题24实现代码:

/* author:宋金时 */
/* date:2011/11/05 */

#include "Stdio.h"
#include "Conio.h"

int main(void)
{
  char str[] = "92081346718538",*s_p,*end_str,*temp;
  int n=10,len;
  s_p = str;
  len = strlen(str);
  end_str = str+len-1;
  while(*s_p!='\0'&&n>0)
  {
     if(*s_p<'8')
        {
            printf("%c,",*s_p);
           temp = s_p;
            while(temp<end_str)
            {
                *temp=*(temp+1);
                temp++;
            }
            *end_str = '\0';
            end_str--;
            n--;
        }
        else
            s_p++;
  }
  printf("%d\n",atoi(str));
  getch();
  return 0;
}

问题25实现代码:

/* author:宋金时 */
/* date:2011/11/05 */

#include "Stdio.h"
#include "Conio.h"

#define N (1000-100)

int main(void)
{
 /* 此处添加你自己的代码 */
 int num[N],i,j,k,cha,pos=0,count=0,count_temp=0,*max,*max_temp;
 for(i=100;i<1000;i++)
 {
    for(j=2;j<i;j++)
    {
        if(i%j==0)
            break;
    }
    if(j==i)
    {
        num[pos++]=i;
    }
 }
 for(i=0;i<pos;i++)
 {
    printf("%d\t",num[i]);
 }
 printf("\n===========================================\n");

 max=(int*)malloc(pos*sizeof(int));
 max_temp=(int*)malloc(pos*sizeof(int));
 memset(max,0,pos*sizeof(int));
 memset(max_temp,0,pos*sizeof(int));
 /*******************************************************/
 /* 找到一组最大的等差数列,并得到最大数列的个数 */
 for(i=0;i<pos;i++)
 {
    for(j=i+1;j<pos;j++)
    {
        count_temp=0;
        max_temp[count_temp++]=num[i];
        max_temp[count_temp++]=num[j];
        cha=max_temp[0]-max_temp[1];
        for(k=j+1;k<pos;k++)
        {
           if(cha==(max_temp[count_temp-1]-num[k]))
           {
            max_temp[count_temp++]=num[k];
           }
        }
      if(count<=count_temp)
      {
        count=count_temp;
        for(k=0;k<count;k++)
        {
            max[k]=max_temp[k];
        }
      }
    }
 }
 for(i=0;i<count;i++)
 {
    printf("%d\t",max[i]);
 }
 printf("\n===========================================\n");
 /**********************************************************/
 /* 打印出所有最大数列 */
 for(i=0;i<pos;i++)
 {
    for(j=i+1;j<pos;j++)
    {
        count_temp=0;
        max_temp[count_temp++]=num[i];
        max_temp[count_temp++]=num[j];
        cha=max_temp[0]-max_temp[1];
        for(k=j+1;k<pos;k++)
        {
           if(cha==(max_temp[count_temp-1]-num[k]))
           {
            max_temp[count_temp++]=num[k];
           }
        }
      if(count_temp==count)
      {
        for(k=0;k<count;k++)
        {
            printf("%d\t",max_temp[k]);
        }
        printf("\n");
      }
    }
 }
 /*******************************************************/
 free(max);
 free(max_temp);
 max=NULL;
 max_temp=NULL;
  getch();
  return 0;
}
时间: 2024-07-28 16:56:02

(7)巩固一下C语言基础知识,谁动手,谁收获。的相关文章

c语言基础问题-小白求解c语言基础知识

问题描述 小白求解c语言基础知识 为什么点编译没出现错误,点建立出现错误 解决方案 建议百度二级c语言加油站,下载里面的vc++6.0完整版就不会出现你这样的问题了 解决方案二: include 中间的空格去掉 解决方案三: 我记得code::blocks是需要编译之后再点一次运行才可以 解决方案四: 这个应该是没有问题的,在编译一次,实在不行,卸掉vc,重新装一次

《数据驱动的网络分析》——6.2 R语言基础知识

6.2 R语言基础知识 本节是R语言的速成教程.R是一种特性丰富的语言,我也只是略懂一二.但是,在本节结束时,你就能够编写简单的R程序,在命令行上运行,并将其保存为一个库. 6.2.1 R提示符 启动R,将会显示一个窗口和命令提示符.图6-1展示了一个R控制台的例子.如图所示,控制台主要是一个大的文本窗口,顶部的一系列按钮提供了辅助功能.注意按钮栏下的两个文本框,第一个显示当前工作目录,第二个是帮助功能.R有很好的文档,所以一定要习惯使用帮助框. 在图6-1中,我输入了几条简单的命令: > s<

IOS开发之路--C语言基础知识_IOS

概览 当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(iphone/ipad) Swift 这么看下去还有大量的内容需要持续补充,但是今天我们从最基础的C语言开始,C语言部分我将分成几个章节去说,今天我们简单看一下C的一些基础知识,更高级的内容我将放到后面的文章中. 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述): Hello World 运行过程 数据类型 运算符 常用

(1)巩固一下C语言基础知识,谁动手,谁收获。

参加的一个比赛里面的基础性的C语言小程序编写,大家可以练习一下,巩固一下基础知识.不要拷贝别人的代码,自己亲自动手写一下,别管是否简单.  问题1:   编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤.(20分)    a12  b8  c5    12   0   0    *    *   *( "*"表示当前状态下每个容器的盛水量)    ......    6    6   0 问题2: 编程实现:有二维数组a[

VBScript语言 基础知识

vbscript 一.VBScript语言概述 我们都希望制作出的网页既精致美观又生动活泼而且功能强大,用VBScript语言可以实现这一愿望. VBScript是Microsoft Visual Basic的简化版本. VBScript是特意为在浏览器中进行工作而设计的. 编程方法和Visual Basic基本相同 . VBScript只有一种数据类型,即,Variant类型. VBScript不支持Visual Basic中传统的I/O功能,即不能通过Open语句和函数在客户机上读写文件,这

第二讲 Java语言基础知识

概述: [课前思考] 1. Java中的标识符是由哪些字符组成的? 2. Java中有哪些保留字?简单数据类型包含哪几种?各种数据类型变量的定义方法和常量的表示方法及取值范围. 3. Java 中各简单数据类型间的优先次序和自动转换规则是什么? 各数据类型间在什么情况下,进行自动转换,在什么情况下使用强制转换? 4. Java中有哪些运算符?这些运算符的优先关系是怎样的? 5. Java 中有哪些控制语句?你了解每一种控制语句的语法规则吗? 6. Java 中的一维数组和多维数组在数组动态初始化

OC语言基础知识

一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程 二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行类的划分中,一般采取的

Go语言基础知识总结(语法、变量、数值类型、表达式、控制结构等)_Golang

一.语法结构 golang源码采用UTF-8编码.空格包括:空白,tab,换行,回车. - 标识符由字母和数字组成(外加'_'),字母和数字都是Unicode编码. - 注释: 复制代码 代码如下: /* This is a comment; no nesting */ // So is this. 二.字面值(literals)类似C语言中的字面值,但数值不需要符号以及大小标志: 复制代码 代码如下: 23 0x0FF 1.234e7类似C中的字符串,但字符串是Unicode/UTF-8编码的

(3)巩固一下C语言基础知识,谁动手,谁收获。

问题12: 编写一个简单的通讯录管理系统.通讯录包括:姓名.通讯地址.邮编.联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入.显示.查找,通讯录保存到一个文件中.(50分) (提示:可能用到以下库函数: malloc(),功能:分配size字节的存储区, 用法:(类型 *)malloc(size *sizeof(你要定义的类型)):包含于<stdlib.h>库中 feof(),功能:检测文件是否结束 用法: int feof(fp) FILE *fp:包含于<stdio.h>