合并有序数组,及其位运算循环移动拔河比赛问题代码

合併有序数组 时间约束:1000ms 内部存款和储蓄器约束:10000K  总时间节制:3000ms

week_2_day1_7.7 周一
//用字符数组 来完结 字母大小写调换
#include<stdio.h>
void desc( char *a ,int n)
{
char *i = a;
int x = 0 ;
for ( x = 0; x < n ;x ++ )
{
if ( *i >= 97 )
*i-=32;
i++;
}
}
int main
{
void desc(char *num, int n卡塔尔(قطر‎;//必得在函数内部宣称
char num[100], a;
int i = 0, k = 0;
while((a = getchar != ‘n’){
num[i] = a;
i++;
}
desc;
for (k = 0; k < i; k ++) {
printf(“%c”,num[k]);
}
return 0;
}
//大数字加法
#include <stdio.h>
int main(int argc, const char * argv[])
{

描述:

int a[1001] = {},b[1001] = {} , c[1001] = {} ;
int i , j= 0 , k1 = 0 ,k2 = 0 ,count1 = 0 , count2 = 0;
char ch , ch1 = ‘0’;
for (i = 1; (ch = getchar != ‘ ‘ ; i ++) {
j = ch – ch1;
a[i] = j;
}//第三个大数字
k1 =i – 1;
for (i = 1; (ch = getchar != ‘n’ ; i ++) {
j = ch – ch1;
b[i] = j;
}//第三个大数字
k2 = i – 1 ;
if (k1 > k2) {
count1 = k1;
count2 = k2;
}
else{ count1 = k2;
count2 = k1;
}
for ( i = count1 ; i > 0 ; i –,k1 –, k2 — ) {//加法
if (k2 <= 0)
c[i] += a[k1];//推断是否 那一个相当小的数字 是或不是业已加完
else if ( k1 <= 0)
c[i] += a[k2];
else{
c[i] += (a[k1] + b[k2]);
if (c[i] > 9)
{
c[i] %= 10;
c[i-1] = 1;//是还是不是进位
}
}
}
if (c[0] == 1)
printf(“%d”,c[0]);
for ( i = 1 ; i <= count1 ; i ++ )
printf(“%d”,c[i]);
printf;
return 0;
}
//n!的位数 一时半刻不是太懂

给你七个不改变且升序的数组,请您把它们合成三个升序数组并出口

#include <stdio.h>
#include <math.h>
int factorial
{
long a[10000];
int i,j,c,m=0,w,l = 0;

输入:

a[0]=1;
for(i=1;i<=n;i++)
{
c=0;
for(j=0;j<=m;j++)
{
a[j]=a[j]*i+c;
c=a[j]/10000;
a[j]=a[j]%10000;
}
if {m++;a[m]=c;}
}
w=m*4+log10+1;
// printf(“n%ld”,a[m]);
// for(i=m-1;i>=0;i–)
// printf(“%4.4ldn”,a[i]);
return w;
}

第一行为N,N<=20 ;
其次作为N个数字,那N个数字用一个空格隔断
其三行为M,M<=20 ;
第四行事M个数字,那M个数字用二个空格隔绝
全体数均可用int型表示

int main(int argc, const char * argv[])
{

输出:

int x;
scanf(“%d”,&x);
x=factorial;
printf;
return 0;
}
//拔河较量分配方案
//正是用随机函数明确那家伙在那一队,然后相比较那一队和完整重相差小,就输出他。
#include<stdio.h>
#include <stdlib.h>
#include <sys/_types/_mode_t.h>
int swap(int *a, int j);
int swap(int *a , int j)
{
int min = 0, b ,s = 0 , sum = 0;
int c[100] = {};
for ( int i = 0; i < j ; i ++ ) {
sum += a[i];
}//总人数的 体重
printf(“总体重:%dn”,sum);
for ( int h = 0; h < j; h ++)
{
c[h] = -1;
}
for ( int i = 0; i < 10000; i ++)
{
for ( int n = 0; n < j/2; n ++)
{
AA:
b = abs(arc4random;
for ( int h = 0; h < n; h ++)
{
if (c[h] == b)
{
goto AA;
}
}
c[n] = b;
s += a[b];
}

输出归中国人民解放军总后勤部的数组,每行输出多少个,最终输出二个回车

for ( int h = 0; h < j; h ++)
{
c[h] = -1;
}//重新苏醒设置 保存的 已经有效的数额

输入样例:

if (abs(sum/2 – min) > abs(sum/2 – s) ) {
min = s ;
}
s = 0;
}
return min;
}
int main
{
int a ,ch[100],sum = 0 ;
printf(“请输入拔河比赛的总人数:”卡塔尔;
scanf(“%d”,&a);
for ( int i =0; i < a; i ++)
{
printf(“请输入第%d个人:”,i+1卡塔尔国;
scanf(“%d”,&ch[i]);

3
1 3 7
5
2 4 6 8 10

}
int min = swap;
for ( int i = 0; i < a ; i ++ ) {
sum += ch[i];
}
printf(“比较轻的军事:%dn”,min);
printf(“比较重的军队:%dn”,sum-min);
//printf(“%dn”,a, j);
return 0 ;
}
//将n向右循环a位 然后输出
#include <stdio.h>
int ch[32] = {} , ch_l[32] = {};
void printfArry( int *a , int b卡塔尔(قطر‎;//输出数组
int * del_num;//分解数字为2进制 存进数组
int * Toright( int * p, int m卡塔尔国;//向右移动
int To_arry_num;//各个数组应该加的2的k次幂
int To_sum( int *p ,int hState of Qatar;//最终输出的 调换后的 数字
void printfArry( int *a , int b){
int i = 0 ;
for ( i = 0 ; i < b; i ++) {
printf(“%dt”,a[i]);
}
}
int * del_num{
int i = 0;
for ( i = 0; a > 0; i ++ )
{
if ( a %2 == 0) {
ch[ 31 – i] = 0;
}
else{
ch[ 31 – i] = 1;
}
a /= 2 ;
}
return ch ;
}
int * Toright( int * p, int m)
{
int i = 0 , k = 31 , j ;
for ( i = 31- m; i >=0; k– ,i –)
{
ch_l[k] = p[i];
}
for ( j = 31 ; j >31 – m ; k — ,j –) {
ch_l[k] = p[j];
}

出口样例:

return ch_l;
};

1
2
3
4
6
7
8
10

int To_arry_num{
int i = 0 , s=1;
for ( ; i < k ; i ++) {
s *= 2 ;
}
return s;
}
int To_sum( int *p , int h){
int sum = 0 , i = 0;
for ( i = 0; i < h; i ++ )
{
if ( p[i] == 1)
{
sum += To_arry_num;
}
}
return sum;
}
int main(int argc, const char * argv[])
{

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

long a ;
int *p , m = 0;
scanf(“%ld”,&a);
scanf(“%d”,&m);
// printf(“%ldn”,a);
if {
printf;
}
else
{
p =del_num;//降解数字为2进制
p=Toright;

int main()
{
    int n,m,k,l;
    int a[25]={0};
    int b[25]={0};
    int c[50]={0};
    int i=0;int
j=0;
    int *p,*q;
    p=a;q=b;
    scanf(“%d”,&n);
    while(i<n)
    {
        scanf(“%d”,&a[i]);
        i++;
    }
     i=0;
    scanf(“%d”,&m);
    while(i<m)
    {
        scanf(“%d”,&b[i]);
        i++;
    }
    i=0;l=0;
    while(l<n&&j<m)
    {
        if(*p<*q)
        {
           c[i]=*p;
           p++;
           l++;

printfArry;
printf;
a = To_sum;
printf(“%ldn”,a);
}
return 0;
}
//循环左侧移动 n位
#include <stdio.h>
int ch[32] = {} , ch_l[32] = {};
void printfArry( int *a , int b);
int * del_num;
int * Toleft( int * p, int m);
int To_arry_num;
int To_sum( int *p ,int h);
void printfArry( int *a , int b){
int i = 0 ;
for ( i = 0 ; i < b; i ++) {
printf(“%d”,a[i]);
}
}
int * del_num{
int i = 0;
for ( i = 0; a > 0; i ++ )
{
if ( a %2 == 0) {
ch[ 31 – i] = 0;
}
else{
ch[ 31 – i] = 1;
}
官方澳门新永利下载,a /= 2 ;
}
return ch ;
}
int * Toleft( int * p, int m)
{
int i = 0 , k = 31 – m ;
for ( i = 31 ; k == 0 ; k– ,i –)
{
ch_l[k] = p[i];
}
for ( k = 31 -m ; i >= 0; k — ,i –) {
ch_l[k] = p[i];
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注