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语言帮我编一个小程序(大一作业)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)