C++总是提示我1 error(s), 0 warning(s)

Python013

C++总是提示我1 error(s), 0 warning(s),第1张

1error表明你有一个编译错误

错误指示在这一行 int x,y

你把y后面的分号换成英文符号的分号就可以了。因为你程序里误用作中文的分号了。

运行结果是

0x=21x=61y=21y=8

(第一题)#include <stdio.h>

void main()

{

int gy(int m, int n)

int x,y,max, min

printf("请输入两个大于0的正整数,以空格或者回车间隔:\n")

scanf("%d%d",&x,&y)

while(x<1 || y<1)

{

printf("输入数据不正确,请重新输入。\n")

printf("请输入两个大于0的正整数,以空格或者回车间隔:\n")

scanf("%d%d",&x,&y)

}

max=gy(x,y)

min=x*y/max

printf("%d与%d的最大公约数是:%d,最小公倍数是:%d\n",x,y,max,min)

}

int gy(int m, int n)

{

int max, t

while(m%n != 0) // while(m%n)

{

t=nn=m%nm=t

}

max=n

return max

}

第二题#include <stdio.h>

#include <math.h>

void main()

{

void root(double a, double b, double c)

double a, b, c

printf("请输入一元二次方程的系数,用空格或者回车间隔:\n")

scanf("%lf%lf%lf",&a,&b,&c)

root(a,b,c)

}

void root(double a, double b, double c)

{

double disc, x1, x2, real , imag

disc = b*b-4*a*c

if(disc>0)

{

x1 = (-b+sqrt(disc))/(2*a)

x2 = (-b-sqrt(disc))/(2*a)

printf("方程有两个实根,分别是:%f 与 %f\n", x1, x2)

}

else if(disc==0)

{

x1 = (-b)/(2*a)

printf("方程有一个实根,它是:%f\n ", x1)

}

else

{

real=(-b)/(2*a)

imag=sqrt(-disc)/(2*a)

printf("方程有两个虚根,分别是:%f+%fi, %f-%fi\n", real,imag,real,imag)

}

}

测试1:请输入一元二次方程的系数,用空格或者回车间隔:1 2 1

方程有一个实根,它是:-1.000000

测试2:请输入一元二次方程的系数,用空格或者回车间隔:1 6 5

方程有两个实根,分别是:-1.000000 与 -5.000000

测试3:请输入一元二次方程的系数,用空格或者回车间隔:1 1 1

方程有两个虚根,分别是:-0.500000+0.866025i, -0.500000-0.866025i

第三题#include <stdio.h>

#include <math.h>

void main()

{

int isprime(int n)

int n

scanf("%d",&n)

while(n<2)

{

printf("Please reinput(n>=2):")

scanf("%d",&n)

}

if(isprime(n))

printf("%d是素数。\n",n)

else

printf("%d不是素数。\n",n)

}

int isprime(int n)

{

int i,k=sqrt(n)

for(i=2i<=ki++)

{

if(n%i==0)

return 0

}

return 1

}

第四题#include <stdio.h>

#include <math.h>

void main()

{

void printA(int a[3][3])

void reverse(int a[3][3])//转置函数的声明

int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}

printf("原二维数组:\n")

printA(a)

reverse(a)//函数转置

printf("转置后的数组:\n")

printA(a)

}

void printA(int a[3][3])

{

int i,j

for(i=0i<3i++)

{

for(j=0j<3j++)

{

printf("%6d",a[i][j])

}

printf("\n")

}

}

void reverse(int a[3][3]) //函数转置的定义

{

int i,j,t

for(i=0i<3i++)

{

for(j=0j<ij++)

{

t=a[i][j]

a[i][j]=a[j][i]

a[j][i]=t

}

}

}

第五题#include <stdio.h>

#include <string.h>

void main()

{

char str[30]

void fanxu(char *p)

printf("请输入一个字符串:")

gets(str)

printf("进行反序......\n")

fanxu(str)

printf("反序后的字符串:")

puts(str)

}

void fanxu(char *p)

{

int len=strlen(p)

char *q,c

q=p+len-1//字符串最后一个字符位置

for(p<qp++,q--)

{

c=*p*p=*q*q=c

}

}

第六题#include <stdio.h>

#include <string.h>

void main()

{

char str1[60],str2[30]

void str_copy(char *p, char *q)

printf("请输入第一个字符串:")

gets(str1)

printf("请输入第二个字符串:")

gets(str2)

str_copy(str1, str2)

printf("连接后的字符串:")

puts(str1)

}

void str_copy(char *p, char *q)

{

for(*p!='\0'p++)

for(*q!='\0'p++,q++)

{

*p=*q

}

*p='\0'

}

(0808)#include <stdio.h>

#include <string.h>

void main()

{

char str[80]

void insert(char str[])//插入空格的函数

printf("请输入一个字符串:")

gets(str)

insert(str) //插入空格

puts(str) //输出字符串

}

void insert(char str[])

{

int len, i

len=strlen(str)

for(i=leni>0i--) // 设置空格

{

str[2*i]=str[i]

str[2*i-1]=' '

}

}

(0809)#include <stdio.h>

int letter//字母个数

int digit//数字个数

int space//空格个数

int others//其它字母个数

void main()

{

void count(char str[])//统计个数的函数的声明

char s[81]

printf("请输入一个字符串:")

gets(s)

letter=0digit=0

space=0others=0

count(s)

printf("字符串中共有 %d 个字母,%d 个数字,%d 个空格,%d个其它字母。\n",letter,digit,space,others)

}

void count(char str[]) //统计个数的函数的定义

{

int i

char c

for(i=0str[i]!='\0'i++)

{

c=str[i]

if(c>='a' &&c<='z' || c>='A' &&c<='Z')

{ letter++}

else if(c>='0' &&c<='9')

{ digit++}

else if(c==' ')

{ space++}

else

{ others++}

}

}

(0810)#include <stdio.h>

#include <string.h>

void main()

{

int i

char line[81]

int alphabetic(char c)//判断一个字符是空格还是其它字母

int longest(char str[])//寻找最长单词的起始位置

printf("请输入一行字符串:\n")

gets(line)

printf("最长的字符串是:")

for(i=longest(line)alphabetic(line[i])i++)

{ printf("%c",line[i])}

printf("\n")

}

int alphabetic(char c) //如果为空格返回0,其它字母返回1

{

if(c!=' ')

return 1

else

return 0

}

int longest(char str[])

{

int len=0 // 记录每一个单词的长度

int length=0 // 记录最长单词的长度

int flag=1 // 其值为0时表示当前位置处于字符串中,为1时表示当前位置为空格

int place=0 // 记录最长字符串(单词)的起始位置

int point // 每个字符串的起始位置

for(int i=0i<=strlen(str)i++)

{

if(alphabetic(str[i])) //如果当前位置为非空格

{

if(flag) //如果前一字符为空格

{

point = i // 设置当前单词的起始位置

flag = 0 // flag设为0,表示处于单词中

}

else //如果前一字符为非空格

{ len++} // 单词的长度加1

}

else //当前位置为空格

{

flag = 1 //flag设为1,表示当前位置为空格

if(len >= length) //如果最近单词的长度大于最长长度

{

length = len

place = point //设置最长单词的起始位置

len = 0 //len归0,重新开始计算单词的长度

}

}

}

return place

}

(0811)#include <stdio.h>

#include <string.h>

void main()

{

void inputNum(int a[], int n)

void outputNum(int a[], int n)

void bubble(int a[], int n)

int a[11], n

printf("请输入你要排序的数的个数:")

scanf("%d",&n)

inputNum(a,n)

outputNum(a,n)

bubble(a,n)

printf("从小到大排序为:\n")

outputNum(a,n)

}

void inputNum(int a[], int n)

{

int i

for(i=1i<=ni++)

{

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

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

}

}

void outputNum(int a[], int n)

{

int i

for(i=1i<=ni++)

{

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

}

printf("\n")

}

void bubble(int a[], int n)

{

int i,j,t

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

{

for(j=1j<=n-ij++)

{

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

{ t=a[j]a[j]=a[j+1]a[j+1]=t}

}

}

}

(0813)#include <stdio.h>

void main()

{

double lrd(int, double)

double x

int n

printf("请输入n阶勒让德多项式的阶数:\n")

scanf("%d",&n)

printf("请输入x的值:\n")

scanf("%lf",&x)

printf("参数为%f 的 %d 阶勒让德多项式的值为 %f.\n",x,n,lrd(n,x))

}

double lrd(int n, double x)

{

if(n==0)

return 1

else if(n==1)

return x

else

return ((2*n-1)*x - lrd(n-1,x) -(n-1)*lrd(n-2,x))/n

}

/*

测试1:请输入n阶勒让德多项式的阶数:0请输入x的值:99.99参数为99.990000 的 0 阶勒让德多项式的值为 1.000000.

测试2:请输入n阶勒让德多项式的阶数:1请输入x的值:99.99

参数为99.990000 的 1 阶勒让德多项式的值为 99.990000.

测试3:请输入n阶勒让德多项式的阶数:2

请输入x的值:99.99 参数为99.990000 的 2 阶勒让德多项式的值为 99.490000.

测试4:请输入n阶勒让德多项式的阶数:10

请输入x的值:1.1

参数为1.100000 的 10 阶勒让德多项式的值为 0.888677.

(0817)#include <stdio.h>

void main()

{

int num

void convert(int num)// 转换为字符串的函数的声明

printf("请输入一个整数:\n")

scanf("%d",&num)

printf("转换成字符串:")

if(num<0)

{

putchar('-')

num = -num

}

convert(num)

printf("\n")

}

void convert(int n)

{

int i

if((i = (n/10)) != 0)

{

convert(i)

}

putchar(n%10 + '0')

}

(0818)#include <stdio.h>

int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}

void main()

{

int year,month,day

int days

int count(int year,int month, int day)

int leap(int y)

printf("请输入年份:")

scanf("%d",&year)

while(year<=0)

{

printf("年份不能为负,请重新输入:")

scanf("%d",&year)

}

if(leap(year)) //如果为闰年,2月份的天数为29

{ d[2]=29}

printf("输入月份:")

scanf("%d",&month)

while(month<1 || month>12)

{

printf("月份在1月和12月之间,你的输入有误,请重新输入:")

scanf("%d",&month)

}

printf("输入日数:")

scanf("%d",&day)

while(day<1 || day >d[month])

{

printf("日数应在1和%d之间,请重新输入:",d[month])

scanf("%d",&day)

}

days=count(year,month,day)

printf("%d年%d月%d日是该年的第%d天\n",year,month,day,days)

}

int leap(int y)

{

if(y%4==0 &&y%100!=0 || y%400==0)

return 1

else

return 0

}

int count(int year,int month, int day)

{

int i,days=0

for(i=1i<monthi++)

{ days += d[i]}

days+=day

return days

}

(08050)#include <stdio.h>

#include <string.h>

void main()

{

char str[30]

void fanxu(char str[])

printf("请输入一个字符串:")

gets(str)

printf("进行反序......\n")

fanxu(str)

printf("反序后的字符串:")

puts(str)

}

void fanxu(char str[])

{

int len=strlen(str)

int i,j

char c

i=0j=len-1//i,j分别存储第一个字符和最后一个字符的下标

for(i<ji++,j--)

{

c=str[i]str[i]=str[j]str[j]=c

}

}

(08051)#include <stdio.h>

#include <string.h>

void main()

{

char str[30]

void fanxu(char s[])

printf("请输入一个字符串:")

gets(str)

printf("进行反序......\n")

fanxu(str)

printf("反序后的字符串:")

puts(str)

}

void fanxu(char s[])

{

int len=strlen(s)

int i

char c

for(i=0i<=len/2i++)

{

c=s[i]

s[i]=s[len-i-1]

s[len-i-1]=c

}

}

(08061)#include <stdio.h>

#include <string.h>

void main()

{

char str1[60],str2[30]

void str_copy(char s1[], char s2[])

printf("请输入第一个字符串:")

gets(str1)

printf("请输入第二个字符串:")

gets(str2)

str_copy(str1, str2)

printf("连接后的字符串:")

puts(str1)

}

void str_copy(char s1[], char s2[])

{

int i,j

for(i=0s1[i]i++)// s1[i]!='\0'

for(j=0s1[i]=s2[j]i++,j++)

// (s1[i]=s2[j])!='\0'

}

(08110)#include <stdio.h>

#include <string.h>

void main()

{

void inputNum(char a[], char n)

void outputNum(char a[], char n)

void bubble(char a[], char n)

char a[11], n

printf("请输入你要排序的数的个数:")

scanf("%d",&n)

inputNum(a,n)

outputNum(a,n)

bubble(a,n)

printf("从小到大排序为:\n")

outputNum(a,n)

}

void inputNum(char a[], char n)

{

char i

printf("请连续输入%d个字符:",n)

fflush(stdin)//一般在输入字符或者字符串之前要清空输入缓冲区

for(i=1i<=ni++)

{

scanf("%c",&a[i])

}

}

void outputNum(char a[], char n)

{

char i

for(i=1i<=ni++)

{

printf("%2c",a[i])

}

printf("\n")

}

void bubble(char a[], char n)

{

char i,j,t

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

{

for(j=1j<=n-ij++)

{

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

{ t=a[j]a[j]=a[j+1]a[j+1]=t}

}

}

}

(08112)#include <iostream.h>

#include <iomanip.h>

void main()

{

void inputNum(int a[], int n)

void outputNum(int a[], int n)

void bubble(int a[], int n)

int a[11], n

cout<<"请输入你要排序的数的个数:"

cin>>n

while(n<1 || n>10)

{

cout<<"请重新输入,(1<=n<=10):"

cin>>n

}

inputNum(a,n)

outputNum(a,n)

bubble(a,n)

cout<<"从小到大排序为:\n"

outputNum(a,n)

}

void inputNum(int a[], int n)

{

int i

for(i=1i<=ni++)

{

cout<<"a["<<i<<"]="

cin>>a[i]

}

}

void outputNum(int a[], int n)

{

int i

for(i=1i<=ni++)

{

cout<<setw(6)<<a[i]

}

cout<<endl

}

void bubble(int a[], int n)

{

int i,j,t

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

{

for(j=1j<=n-ij++)

{

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

{ t=a[j]a[j]=a[j+1]a[j+1]=t}

}

}

}

(08181)#include <iostream.h>

#include <iomanip.h>

int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}

void main()

{

int year,month,day

int days

int count(int year,int month, int day)

int leap(int y)

cout<<"请输入年份:"

cin>>year

while(year<=0)

{

cout<<"年份不能为负,请重新输入:"

cin>>year

}

if(leap(year)) //如果为闰年,2月份的天数为29

{ d[2]=29}

cout<<"输入月份:"

cin>>month

while(month<1 || month>12)

{

cout<<"月份在1月和12月之间,你的输入有误,请重新输入:"

cin>>month

}

cout<<"输入日数:"

cin>>day

while(day<1 || day >d[month])

{

cout<<"日数应在1和"<<d[month]<<"之间,请重新输入:"<<endl

cin>>day

}

days=count(year,month,day)

cout<<year<<"年"<<month<<"月"<<day<<"日是该年的第"<<days<<"天\n"

}

int leap(int y)

{

if(y%4==0 &&y%100!=0 || y%400==0)

return 1

else

return 0

}

int count(int year,int month, int day)

{

int i,days=0

for(i=1i<monthi++)

{ days += d[i]}

days+=day

return days

}