用C语言编写两个小程序,高手来帮帮忙吧!谢谢!明天要交!

用C语言编写两个小程序,高手来帮帮忙吧!谢谢!明天要交!,第1张

1:

#include <stdioh>

#include<stdlibh>

void FindFix(int a,int N)

{

puts("满足条件的元素有");

for(int i=1;i<N;i++)

{

if(a[i]>a[i-1]&&a[i]<a[i+1])

printf("%d ",a[i]);

}

}

int main()

{

int N;

int a;

puts("请输入元素个数");

scanf("%d",&N);

a=(int )malloc(Nsizeof(int));

printf("请输入%d个元素:",N);

for(int i=0;i<N;i++)

{

scanf("%d",&a[i]);

}

FindFix(a,N);

return 0;

}

2:

#include<stdioh>

#include<stringh>

int CountLength(char c)

{

return strlen(c);

}

int main()

{

char c[10];

gets(c);

printf("%d",CountLength(c));

return 0;

}

楼主 改了下 我的编译器通过并能运行了!

//maincpp

//根据你的要求,在有数字相同时输出“相同的数字”,出现不是2的n次方的数字时输出“还可以化简”

//没有使用链表,因为太麻烦,realloc足以满足。

//

#include <stdioh>

#include <malloch>

#include <mathh>

int main()

{

    int number=0;

    size_t array_length = 1;

    int  array =(int) malloc(sizeof(array_lengthsizeof(int)));

    int ret = 0;

    do

    {

        ret = scanf("%d",&number);

        if(ret==0 || ret==EOF)

            return 0;

        size_t idx=0;

        //检查是否有相同的数字

        for(;idx<array_length;idx++)

        {

            //相同的数字

            if(array[idx]==number)

            {

                //printf("相同的数字\n");

                printf("还可以化简");

                free(array);

                return 1;

            }

        }

        if(realloc(array,(array_length+1)sizeof(int))==NULL)

            return -1;

        array_length++;

        array[array_length-1]=number;

        

        ret = log2(number);

        //printf("number %d : log2 = %d ,%lf \n",number,ret,log2(number));

if(!(log2(number)-ret==0))//不是2的n次方

        {

            printf("还可以化简");

            break;

        }

    }

    while(1);

    free(array);

    return 0;

}

double log2(double x)

{

return log(x)/log(2);

}

虽然简单,但基本满足楼主要求了

//studenth

#include <iostream>

using namespace std;

#include <map>

#include <string>

class student

{

public:

void add(int nID);

void check(int nID);

void choose(int nID);

public:

map<int, string> studentInfo;

};

//studentcpp

#include "studenth"

void student::add(int nID)

{

cout<<"请输入添加的学号:"<<endl;

cin>>nID;

cout<<"请输入学生姓名:"<<endl;

string strName;

cin>>strName;

studentInfo[nID] = strName;

}

void student::check(int nID)

{

cout<<"请输入欲查询的学号:"<<endl;

cin>>nID;

if( studentInfofind(nID) != studentInfoend())

{

cout<<"该学号学生姓名为:"<<studentInfo[nID]<<endl;

}

else

{

cout<<"该学号不存在!";

}

}

#include "studenth"

#include <iostream>

using namespace std;

void main()

{

student st;

stchoose(0);

}

int FindSamdData(int a, intb, int length)

{

int i,j;

for (i=0,j=0; (i<length)&&(j<length);)

{

while (a < b) //有序排列,挨个比较

{

a++;

i++;

}

while (a > b)

{

b++;

j++;

}

if (a == b) return a;

}

}

int main(void)

{

int a[ ]={1,3,5,7,9,13,15,27,29,37};

int b[ ]={2,4,6,8,10,13,14,27,29,37};

int c;

c = FindSamdData(a, b ,sizeof(a));

}

增加出错的程序。出错的最好使用一个单独参数,我为了方便没有增加参数。

//有序数组查找相同数据,数组等长

//length为0未找到相同数据,

int FindSamdData(int a, intb, int length)

{

int i,j;

for (i=0,j=0; (i<length)&&(j<length);)

{

while (a < b) //有序排列,挨个比较

{

a++;

i++;

if (i>=length)break;

}

while (a > b)

{

b++;

j++;

if (j>=length)break;

}

if (a == b)

{

length = 1;

return a;

}

}

length = 0;

return 0; //

}

//数组不等长

//al或bl超出数组长表示出错,

int FindSamdData2(int a, intb, int al, int bl)

{

int i,j;

for (i=0,j=0; (i<al)&&(j<bl);)

{

while (a < b) //有序排列,挨个比较

{

a++;

i++;

if (i>=al) break;

}

while (a > b)

{

b++;

j++;

if (j>=bl) break;

}

if (a == b)

{

al = i;

bl = j;

return a;

}

}

al = i;

bl = j;

return 0;

}

void main(void)

{

int a[]={1,3,5,7,9,13,15,27,29,37};

int b[]={2,4,6,8,10,13,14,27,29,37};

int la = sizeof(a);

int lb = sizeof(b);

int c;

c = FindSamdData(a, b ,&la);

if (la == 0) printf("No same!");

la = sizeof(a); //la会被函数 FindSamdData 修改

c = FindSamdData2(a, b ,&la, &lb);

if ((la >=sizeof(a)) || (la >=sizeof(a))) printf("No same!");

}

#include<iostream>

using namespace std;

int main()

{

int b[6]={1,2,2,3,4,5},i,j,k,l,m,n,p,c,d,a[6];

for(j=0;j<6;j++)

a[j]=&b[j];

for(j=0;j<6;j++)

{

a[0]=&b[j];

for(k=0;k<6;k++)

{

if(k==j)

continue;

a[1]=&b[k];

for(l=0;l<6;l++)

{

if(l==j||l==k)

continue;

a[2]=&b[l];

for(m=0;m<6;m++)

{

if(m==j||m==k||m==l)

continue;

a[3]=&b[m];

for(n=0;n<6;n++)

{

if(n==j||n==k||n==l||n==m)

continue;

a[4]=&b[n];

for(p=0;p<6;p++)

{

if(p==j||p==k||p==l||p==m||p==n)

continue;

a[5]=&b[p];

if(a[2]==4)

continue;

else

{

for(i=0;i<6;i++)

{

if(a[i]==3)

c=i;

if(a[i]==5)

d=i;

}

}

if(abs(c-d)==1)

continue;

else

{

for(i=0;i<6;i++)

cout<<a[i]<<' ';

cout<<endl;

}

}

}

}

}

}

}

return 0;

}

以上这个程序可以实现你的要求,问题在于一个命令行窗口不能全部显示出来……你可以对程序略加修改,通过两次运行得到全部结果。或者将结果输入文件中也可。至于变量过多的问题,可以用数组都代替,你 自己尝试一下吧!

#include <stdioh>

#include <stdlibh>

#include <timeh>

void Init(int a[],int n); //随机生成元素取值范围在0到99的数组

void Short(int p,int n); //用选择法对数组中的元素从小到大排序

void Print(int p,int n); //在屏幕上输出数组各元素的值(逗号分隔)

#define N (10)

int main()

{

    int a[N],b[N],c[N2],i;

    srand(time(NULL));

    

    Init(a,N);

    Print(a,N);

    Short(a,N);

    Print(a,N);

    

    Init(b,N);

    Print(b,N);

    Short(b,N);

    Print(b,N);

    

    for(i=0;i<N;++i)

    {

        c[i]=a[i];

    }

    for(i=0;i<N;++i)

    {

        c[i+N]=b[i];

    }

    Print(c,2N);

    Short(c,2N);

    Print(c,2N);

    

    return 0;

}

void Init(int a[],int n)

{

    int i;

    for(i=0;i<n;++i)

    {

        a++=rand()%100;

    }

}

void Short(int p,int n)

{

    int i,j,t;

    for(i=0;i<n-1;++i)

    {

        for(j=0;j<n-i-1;++j)

        {

            if(p[j]>p[j+1])

            {

                t=p[j];

                p[j]=p[j+1];

                p[j+1]=t;

            }

        }

    }

}

void Print(int p,int n)

{

    int i;

    for(i=0;i<n;++i)

    {

        printf("%d%c",p++,i<n-1',':'\n');

    }

}

要理解编译代码的过程实际上分为编译和链接两大部分。

首先把 c 代码编译成 object 文件,再把 object 文件与系统库链接成可执行文件。

比如,有两个文件 mainc, funcc,在 main 里调用了 funcc 里定义的函数。编译过程实际上分两步:

编译:mainc  -> mainobj ,  funcc -> funcobj

链接:maino, funco -> mainexe

不同的 IDE 有不同的设置方法,但基本的步骤都是一样的。

#include <stdioh>

void main()

{

int age;

printf("please input the child age:");

scanf("%d",&age);

switch(age)

{

case 2:

case 3: printf("%d,enter the Lower class\n",age); break;

case 4: printf("%d,enter the Middle class\n",age); break;

case 5:

case 6: printf("%d,enter the Higher class\n",age); break;

default : printf(" you chlid shuld goto more Higher class\n");break;

}

}

以上就是关于用C语言编写两个小程序,高手来帮帮忙吧!谢谢!明天要交!全部的内容,包括:用C语言编写两个小程序,高手来帮帮忙吧!谢谢!明天要交!、C语言一个小程序怎么写、用C语言帮我编一个小程序(大一作业)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9438639.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存