1. C语言程序题目,急求解答,望高手帮忙
二、编程题(20分)
reverse.h文件
#ifndef REVERSE_H
#define REVERSE_H
/*
*求整数m~n之间(m<n)所有数的反序数并统计反序数中素数的个数
*将得到的反序数依次存入数组x中
*函数的返回值是反序数中素数的个数。
*2007-09-09 14:24
*/
int reverse(const int m, const int n, int x[]);
bool IsPrime(const int p);
int reverse(const int r);
#endif
reverse.cpp文件
#include "reverse.h"
#include
#include
#include
using namespace std;
bool IsPrime(const int p)
{
int k = (int)sqrt( (double)p);
for (int i=2; i<=k; i++)
{
if (p%i == 0) return false;
}
return true;
}
int reverse(const int r)
{
char chReverse[10];
memset(chReverse, '0', sizeof(chReverse));
int iTmp = r;
int index = 0;
while (iTmp != 0)
{
int digit = iTmp % 10;
sprintf( chReverse+index, "%d", digit);
index++;
iTmp = iTmp / 10;
}
chReverse[index] = '\0';
return atoi(chReverse);
}
int reverse(const int m, const int n, int x[])
{
int index = 0;
for (int i=m; i<n+1; i++)
{
if (IsPrime(i))
x[index++] = reverse(i);
}
return index;
}
main.cpp 文件
#include "reverse.h"
#include
using namespace std;
int main()
{
int iMin,iMax;
cout << "Input Min and Max :";
cin >> iMin >> iMax;
const int size = iMax - iMin;
int iResult[size];
int iCount = reverse(iMin, iMax, iResult);
for (int i=0; i<iCount; i++)
{
cout << iResult[i] <<endl;
}
cout << "Total Prime Count :" << iCount << endl;
}
2. 高手帮忙改一个c语言程序
int sfz(int a)
{
int a;
a=3;
return a+5;
}
int main()
(
int x;
scanf("%d",&x);
printf("is %d",sfz(x));
return 0;
)
这段程序的主要问题在于没有实参。
少一个输入语句,或者你给x赋值也可以
3. 高手帮忙设计一个C语言程序
#include
#include
#include
struct student
{char name[30];
char number[20];
char sex[10];
char nation[10];
char address[60];
char born[20];
char family[60];
char course[60];
int sign;
struct student *next;
}record;
struct student *head;
static int n;
int menu_select(),i;
void enter();
void delete();
void search();
void group();
void change();
void savefile();
void openfile();
main()
{char s[80],choice;
head=NULL;
for(;;)
switch(menu_select())
{case 1:enter();break;
case 2:delete();break;
case 3:search();break;
case 4:change();break;
case 5:group();break;
case 6:savefile();break;
case 7:openfile();break;
case 8:exit(0);
}
}
void group()
{struct student *p,*p1;
int j=1;
p1=head;
printf("\nyou can know every student's main information from this\n");
do
{printf("Sign number:%4d. Name:%10s. Number:%8s. Sex:%4s. Nation:%4s. Born:%6s\n",p1->sign,p1->name,p1->number,p1->sex,p1->nation,p1->born);
p1=p1->next;j++;
}while(p1->name!=0);
}
int menu_select()
{char s[80];
int n;
printf("1----Enter a name\n");
printf("2----Delete arecord\n");
printf("3----Search\n");
printf("4----Change\n");
printf("5----Group\n");
printf("6----savefile\n");
printf("7----openfile\n");
printf("8----Quit\n");
do
{printf("please input you choice:\n");
gets(s);
n=atoi(s);
}
while(n8);
return(n);
}
void enter()
{struct student *info;
void circle();
float a;
for(n=0;;n++)
{info=(struct student *)malloc(sizeof(record));
if(info==NULL)
{printf("\n Out of memory");
return;
}
getchar();
printf("enter name:");
gets(info->name);
if(info->name[0]=='0')
{info->next=0;break; }
else
{
printf("enter number:");
gets(info->number);
printf("enter Sex:");
gets(info->sex);
printf("enter nation:");
gets(info->nation);
printf("enter Address:");
gets(info->address);
printf("enter Born date:");
gets(info->born);
printf("enter Family:");
gets(info->family);
printf("enter Course:");
gets(info->course);
printf("enter Sign number:");
scanf("%d",&info->sign);
circle(info);
}
}
}
void circle(struct student *info)
{ struct student *p2,*p1,*p0;
p1=head;
p0=info;
if(head==NULL)
{head=p0;p0->next=NULL;}
else
{while((p0->signsign)&&(p1->next!=NULL))
{p2=p1;
p1=p1->next;}
if(p0->sign>p1->sign)
{if(head==p1)head=p0;
else p2->next=p0;
p0->next=p1;}
else
{p1->next=p0;p0->next=NULL;}
}
}
void display(info)
struct student *info;
{printf("Name:%s\n",info->name);
printf("Number:%s\n",info->number);
printf("Sex:%s\n",info->sex);
printf("Nation:%s\n",info->nation);
printf("Address:%s\n",info->address);
printf("Born date:%s\n",info->born);
printf("Family:%s\n",info->family);
printf("Course:%s\n",info->course);
printf("Sign number:%d\n",info->sign);
printf("\n\n");
}
void search()
{char name[40],street[30],s[30],t[30];
struct student *info,*find();
printf("you want by what to find name? number? sign(_number)?");
gets(t);
printf("\n input please:");
gets(s);
if((info=find(s))==NULL)
printf("not found\n");
else display(info);
}
struct student *find(char *s)
{
struct student *info;
info=head;
while(info)
{if((!strcmp(s,info->name))||(!strcmp(s,info->number))||(!strcmp(s,info->sign)))
return(info);
else
info=info->next;
}
return(info);
}
void delete()
{char s[80];
struct student *p1,*p2,*info;
printf("enter name:");
gets(s);
info=find(s);
if(info!=NULL)
{
if(head==info)
{
head=info->next;
printf("delete:%s\n",info->name);
free(info);
}
else
{p2=head;
p1=head->next;
while(info!=p1)
{p2=p1;p1=p1->next;}
p2->next=p1->next;
printf("delete:%s\n",info->name);
free(info);
}
}else
printf("%s not found!\n",info->name);
}
void change()
{char s[30],a[30];
float sum,b;
int i;
struct student *p;
printf("enter name:");
gets(s);
p=find(s);
if(p!=NULL)
{printf("what you want to change:\n name? number? sex? nation? born? family? course?");
gets(a);
printf("please enter %s:",a);
if(strcmp(a,"name")==0)
scanf("%s",p->name);
if(strcmp(a,"number")==0)
scanf("%s",p->number);
if(strcmp(a,"sex")==0)
scanf("%s",p->sex);
if(strcmp(a,"nation")==0)
scanf("%s",p->nation);
if(strcmp(a,"born")==0)
scanf("%s",p->born);
if(strcmp(a,"family")==0)
scanf("%s",p->family);
if(strcmp(a,"course")==0)
scanf("%s",p->course);
circle(p);
}
}
void savefile()
{struct student *p;
FILE *fp;
p=head;
fp=fopen("xue.c","wb");
printf("saving ...");
while(head)
{
fwrite(head,sizeof(record)-2,1,fp);
head=head->next;
}
fclose(fp);
printf("\n the file has been saved\n");
}
void openfile()
{FILE *fp;
struct student *back,*next;
fp=fopen("xue.c","rb");
printf("loading ...");
head=back=next=(struct student *)malloc(sizeof(record));
while(fread(next,sizeof(record)-2,1,fp)==1)
{
back=next;
next=(struct student *)malloc(sizeof(record));
back->next=next;
}
free(next);
back->next=NULL;
printf("\nfile has been opened\n");
}
4. 求一C语言程序,哪位高手帮忙解决一下。
#include "stdio.h"
void cin(int *p)
{
int i;
printf("请输入十个整数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&p[i]);
}
}
void swap(int *p)
{
int i,temp,min,max,min1,max1;
min=p[0];
max=p[0];
for(i=1;i<10;i++)
{
if(min>p[i])
{
min=p[i];
min1=i;
}
if(max<p[i])
{
max=p[i];
max1=i;
}
}
p[min1]=p[0];
p[0]=min;
p[max1]=p[9];
p[9]=max;
}
void print(int *p)
{
int i;
for(i=0;i<10;i++)
{
printf("%d\t",p[i]);
}
}
int main(int argc, char* argv[])
{
int array[10];
int *p=array;
cin(p);
swap(p);
print(p);
return 0;
}
5. C语言程序改错,望高手帮忙,谢谢!
楼上说得对,是函数的形式参数和调用的实际参数不符合。
sort(4,data[1]);
这里调用sort的是两个整形的实际参数
而sort(int n,int array[])
定义部分是一个整形和一个数组形式参数,两者不匹配。
应把调用改为
sort(4,data);
6. 请c语言高手帮忙写一个C语言程序
#include
int main(void)
{
char c;
for (c=33;c<=126;++c)
printf("%d\t%o\t%x\t%c\n",c,c,c,c);
return 0;
}
7. 请高手帮忙编一个C语言程序
//---------------------------------------------------------------------------
#include
void fun(int a[][5],int size)
{
int i,j,t;
for (i = 0; i<size; i++) {
for (j=i+1; j<5; j++) {
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
}
int main(void)
{
int i,a[5][5];
for (i = 0; i<25; i++) { /*为5*5矩阵赋初值并输出*/
a[i/5][i%5]=i;
printf("%-2d ",a[i/5][i%5]);
if ((i+1)%5==0) putchar('\n');
}
fun(a,5); /*转置*/
puts("Transpose:") ;
for (i = 0; i<25; i++) { /*输出转置后的矩阵*/
printf("%d ",a[i/5][i%5]);
if ((i+1)%5==0) putchar('\n');
}
return 0;
}
//---------------------------------------------------------------------------
8. c语言程序:高手帮忙了!
按照题目,第一个人拿1个,第二个人拿2个,最后一个人是第n个,他必须拿n块吧。当然相等了。。