所有程序在win-tc和Dev-c++下运行通过。
现在所有的题目都有答案了。
第一题:
#include <stdio.h>
#define N 10
int main()
{
int a[N],i,m=0,n=0,max,min,*p;
p=a;
printf("Please input %d elements of the matrix :\n",N);
for(i=0;i<N;i++)
scanf("%d",p+i);
printf("The array you input is:\n");
for(i=0;i<N;i++)
printf("%5d",*(p+i));
printf("\n");
max=min=*p;
for(i=1;i<N;i++)
{ if(max<*(p+i))
{m=i;max=*(p+i);}
if(min>*(p+i))
{n=i;min=*(p+i);}
}
*(p+n)=*p;
*p=min;
*(p+m)=*(p+N-1);
*(p+N-1)=max;
printf("The matrix you want is:\n");
for(i=0;i<N;i++)
printf("%5d",*(p+i));
printf("\n");
system("pause");
return 0;
}
或者
#include <stdio.h>
int main(void) /* 找出队列中最小数放最左边 最大数放最右边*/
{ int num[10];
/* int num[10]={9,7,3,6,2,10,1,5,8,4}; */
int max,min,i,j,k;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&num[i]);
for(i=0;i<10;i++)
printf("%d ",num[i]);
printf("\n");
max=min=num[0];
for(i=1;i<10;i++)
{
if(num[i]>max)
{max=num[i];
j=i;
}
else if(num[i]<min)
{min=num[i];
k=i;
}
}
if(j!=9)
{ num[j]=num[9];num[9]=max;
}
if(k!=0)
{ num[k]=num[0];num[0]=min;
}
printf("output 10 new numbers:\n");
for(i=0;i<10;i++)
printf("%d ",num[i]);
printf("\n");
getch();
return 0;
}
第二题:
#include <stdio.h>
int length(char *p) /* strlen()函数原型,求一个字符串的长度 */
{
int n=0;
while(*p!='\0')
{ n++;
p++;
}
return(n);
}
int main(void)
{
int len;
/* int length(); */
char str[80];
printf("\nInput a string(<80 characters):");
gets(str); /*如果这里用scanf()函数,那么一行中空格后的输入字符都无效*/
len=length(str); /*因为scanf()函数以空格或tab键或回车键结束*/
printf("The string is:%s\n",str);
printf("The length of the string is %d",len);
getch();
return 0;
}
#include <stdio.h> /* strcmp函数原型 */
int strcmp(char *p1,char *p2)
{int i=0;
while (*(p1+i)==*(p2+i))
if (*(p1+i++)=='\0') return 0; /* 这里是先判断*(p1+i)=='\0',然后再是i++ */
return (*(p1+i)-*(p2+i));
}
int main(void)
{char s1[80],s2[80];
int i,j;
char *p1,*p2;
printf("Input two strings:(<80 characters each)\n");
gets(s1);
gets(s2);
p1=s1;
p2=s2;
j=strcmp(p1,p2);
printf("result:%d\n",j);
getch();
return 0;
}
#include "string.h" /* 计算字符串中子串出现的次数 说明:这里子串是str2,母串是str1 */
#include "stdio.h"
main()
{ char str1[80],str2[80],*p1,*p2;
int sum=0;
printf("\nPlease input two strings\n");
gets(str1);
gets(str2);
p1=str1;p2=str2;
while(*p1!='\0')
{
if(*p1==*p2)
{while(*p1==*p2&&*p2!='\0')
{p1++;
p2++;}
}
else
p1++;
if(*p2=='\0')
sum++;
p2=str2;
}
printf("Times of str2 appeared in str1 are:%d",sum);
getch();
}
其它类似,仿照来写。
第三题:
/*从键盘上任意输入20个数,要求找出其中的素数,并将这些素数按升序排列。(必须用模块化、用指针实现)*/
#include <stdio.h>
#include <math.h>
#define N 20
void sort(int *q,int j)
{int i,k,t;
for(i=0;i<j-1;i++) /* 选择排序 */
for(k=i+1;k<j;k++)
if(*(q+i)>*(q+k))
{t=*(q+i);
*(q+i)=*(q+k);
*(q+k)=t;
}
}
int main()
{ int i,j=0,k,flag,a[N],b[N],*p,*q;
p=a;
q=b;
printf("Please input %d numbers:\n",N);
for(i=0;i<N;i++)
{ flag=0;
scanf("%d",p+i);
for(k=2;k<=sqrt(*(p+i));k++) /* 这里把判断素数放在了这里 */
if((*(p+i)%k)==0){flag=1;break;}
if(flag==0)
{ *(q+j)=*(p+i);j++;}
}
sort(q,j);
printf("The prime you want are:\n");
for(i=0;i<j;i++)
printf("%-5d",*(q+i));
getch();
return 0;
}
第七题:
/* 输入两个整数,求它们相除的余数,用带参的宏来实现 */
#include <stdio.h>
#define MOD(a,b) ((a)%(b))
int main()
{ int a,b;
printf("Please input a and b:\n");
scanf("%d%d",&a,&b);
printf("%d%%%d= %d\n",a,b,MOD(a,b));
system("pause");
return 0;
}
温馨提示:内容为网友见解,仅供参考
C语言大作业,C语言高手们救下小弟啊```
这是我在大学做过的课程设计,你看看:\/ 程序功能:能完成每位学生的某门课程的平时成绩和期末考试成绩的录入,完成每位学生的总评成绩计算(平时成绩*30%+期末考试成绩*70%)并生成数据文件,生成分数段统计文件(不及格人数,60-69数,70-79人数,80-89人数,90-100人数,及格率),通过学生成绩的数...
求助各位C语言编程高手~帮我做3道题~
\/*一*\/ charpt[N+1]={0};memset(pt,'*',N);Diamond(pt,N,N);\/*二*\/ pairp;GCD_LCM(3,6,&p);printf("%d%d\\n",p.gcd,p.lcm);\/*三*\/ inta[]={32,9,45,22,15,48,47,8,55,1};Print(a,a+10);
请各位高手帮忙做几道c语言的编程题
int i;int a,b,c,d;\/\/ int m,n;for(i = 1000; i < 10000; i++){ a = i\/1000;b = i%1000\/100;c = i%100\/10;d = i%10;m = a*10+b;n = c*10+d;if((m+n)*(m+n) == i)printf("%d ",i);} } (4)include <stdio.h> void main(){ int a[10]={0,1,...
哪个高手告诉我用C语言怎么编“从键盘上输入一个正整数,计算该数的各...
void main(){ int a,s;s=1;printf("请输入一个整数");scanf("%d",&a);while (a>0){ s=s*(a % 10);a=a\/10;} printf("a=%d",s);}
求C语言高手编写程序:输出100之内所有个位数字为6且能被3整除的自然数...
include<stdio.h> void main(){ int i;for(i = 0;i < 10;i ++){ if(!((i+6)%3)) \/\/各位数字加和可被3整除的数字可被3整除,因为10a+b=9a+(a+b)printf("%d\\n",i*10+6);} }
C语言高手来一下帮我编个小程序
首先,我可以用字符串来做。我现在先把代码贴上:include <stdio.h> int main(){ char *str , *ch , *c[] = {"个位为:" , "十位为:" , "百位为:" , "千位为:" , "万位为:"};scanf("%s",str);int i = 0 ;\/\/要求1.求出它是几位数 printf("此数为%d位数\\n",(size...
C语言的几道考题,请各位高手帮忙,急!!!(追加50分)
第二题我算也等于-24 三题我答案和你的一样 四题 五题的S=0没什么作用,可以不写,最后的GETCH也可不写,我是没发现有什么用。六题 include<stdio.h> int stu(int a,int b,int c);int stu(int a,int b,int c){ int s;s=a*a+b*b+c*c;return s;} void main(){ int a,b...
C语言高手帮帮我!!!
i++=t*=i可以这样算.先算t*=i => t=(t*i); 再算 i++=t; => (i=t;i++;)第二题:第一次循环.k=1; if不运行得到a = b =s[1]-'0' 的ASC码.第二次循环k=2(也就是最后一次循环)=> a=s[1]-'0'+s[2]-'0'都用ASC码运算....
两道c语言题,谢谢帮帮忙
void main(){ while(true){ int a,i;printf("请输入一个整数\\n这个数以下的完全平方数将全部输出>:");scanf("%d",&a);getit(a);printf(haveit==true? "输出完毕!\\n":"%d 以下没有完全平方数!",a);\/\/循环结束还没有找到,说明a没有完全平方数,返回 } } void getit(int a){ f...
请各位C语言高手帮忙解决下面的问题。
int binary_find(int * a, int target, int low, int high){ if (low > high){ return -1;} else if (a[(low + high)\/2] == target){ return (low + high)\/2;} else if (a[(low + high)\/2] > target){ return binary_find(a, target, low, (low + high)\/2 - 1)...