13
下面是《选择结构》
#include <stdio.h>
int main()
{
char ch;
while((ch=getchar())!='\0') //while((ch=getchar())!=’EOF’) \0 -1
{
if(ch>='a'&&ch<='z')
{
ch-=32;
putchar(ch);
}
else if(ch>='A'&&ch<='Z')
{
ch+=32;
putchar(ch);
}
else putchar(ch);
}
return 0;
}
14
#include <stdio.h>
int main()
{
int i,n,max,min,maxi,mini,k;
scanf("%d\n",&n); //\n
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
min=a[0]; //不能为max=a;为啥
k=1;
maxi=1;
mini=1; //未初始化 所以之后得到随机值
for(i=0;i<n;i++)
{
if(a[i]>max)
{
max=a[i];
maxi=k;
}
if(a[i]<min)
{
min=a[i];
mini=k;
}
k++;
}
printf("max=%d,min=%d\n",max,min);
printf("maxi=%d,mini=%d",maxi,mini);
return 0;
}
标准答案
#include <stdio.h>
int main()
{
int i,n,t,max=0,min=33333,maxi=0,mini=0;
scanf("%d",&n);
for(i=1;i<+n;i++)
{
scanf("%d",&t);
if(max<t)
{
max=t;
maxi=i;
}
if(min>t)
{
min=t;
mini=i;
}
}
printf("max=%d,min=%d\nmaxi=%d,mini=%d",max,min,maxi,mini);
return 0;
}
15
#include <stdio.h>
int main()
{
int i,a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(b<c)
{
i=b;
b=c;
c=i;
}
if(a<b)
{
i=a;
a=b;
b=i;
if(b<c)
{
i=b;
b=c;
c=i;
}
}
printf("%d>%d>%d",a,b,c);
return 0;
}
17
#include <stdio.h>
#include <math.h>
int main()
{
float x=0,y=0;
scanf("%f",&x);
if(x>=0)
{
switch((int)x/10)
{
case 0:y=(float)sin(x);
printf("y=%.2f\n",y);
break;
case 1:y=(float)cos(x); //(float)
printf("y=%.2f\n",y);
break;
case 2:y=(float)(exp(x)-1.0); //括号(exp(x)-1.0)
printf("y=%.2f\n",y); //每个都有输出语句
break;
case 3:y=(float)log(x+1);
printf("y=%.2f\n",y);
break;
default:printf("no definition\n");
}
}
else
printf("no definition\n"); //另外的情况!!!
return 0;
}
18
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,m,n,s=0;
scanf("%d %d",&m,&n);
for(j=m;j<=n;j++)
{
s=0;
if(j>=2)
{
for(i=1;i<=j/2;i++)
{
if(j%i==0)
s=s+i;
}
if(s==j) //s==j就因为一个等于号费了我十分钟
printf("%d\n",j);
}
}
return 0;
}
19
1030
#include <stdio.h>
#include <math.h>
int main()
{
int m,n,i,a,b,c;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c) //==又是因为你这个东西哦!!!
printf("%d ",i);
}
return 0;
}
#include <stdio.h>
#include <math.h>
int sh(int ,int );
int main()
{
int m,n;
scanf("%d %d",&m,&n);
sh(m,n);
return 0;
}
int sh(int x,int y)
{
int a,b,c,i;
for(i=x;i<=y;i++)
{
a=i/100;
b=(i/10)%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c) //==又是因为你这个东西哦!!!
printf("%d ",i);
}
}
20
1032
#include <stdio.h>
#include <math.h>
void sh(int ,int );
int main()
{
int x,y;
scanf("%d %d",&x,&y);
sh(x,y);
return 0;
}
void sh(int a,int b)
{
int i,j,h=0;
if(a>b)
{
h=a;
a=b;
b=h;
}
for(i=a;i>=1;i--)
{
if(a%i==0&&b%i==0)
printf("%d\n",i);
break;
}
for(j=b;;j++)
{
if(j%a==0&&j%b==0)
printf("%d",j);
break;
}
}
21
1034
#include <stdio.h>
int max(int ,int );
int min(int ,int ,int );
int main()
{
int i,j,a,b;
scanf("%d %d",&a,&b);
i=max(a,b);
printf("%d\n",i);
j=min(a,b,i);
printf("%d",j);
return 0;
}
int max(int x,int y)
{
int i,m;
m=(x>y)?y:x;
for(i=y;i>=1;i--)
{
if(x%i==0&&y%i==0)
return i;
}
}
int min(int x,int y,int j)
{
int c;
c=(x*y)/j;
return c;
}
#include <stdio.h>
int max(int ,int );
int min(int ,int );
int main()
{
int a,b;
scanf("%d %d",&a,&b);
max(a,b);
min(a,b);
return 0;
}
int max(int x,int y)
{
int i,m;
m=(x>y)?y:x;
for(i=y;i>=1;i--)
{
if(x%i==0&&y%i==0)
{
printf("%d\n",i); //找你找得好苦呀,显示无结果,因为break没有在括号里
//记得if加括号!
break;
}
}
}
int min(int x,int y)
{
int i,m;
m=(x<y)?y:x;
for(i=y;;i++)
{
if(i%x==0&&i%y==0)
{
printf("%d",i);
break;
}
}
}
22 1035 不会
#include<stdio.h>
int sh(int );
int main()
{
int y=0,i=0,n=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
y=sh(i);
printf("%d ",y);
}
}
int sh(int x)
{
if(x>2)
return(sh(x-2)+sh(x-1));
else if(x=1)
return 1;
else return 1;
}
23 1039
#include<stdio.h>
int sh(int );
int main()
{
int n,x=0;
scanf("%d",&n);
x=sh(n);
if(x==n) //==!!
printf("yes");
else
printf("no");
return 0;
}
int sh(int a)
{
int b=0,s=0;
while(a%10!=0)
{
b=a%10;
a=a/10;
s=s*10+b;
}
return s;
}
24 1040
#include<stdio.h>
int sh(int );
int x=0;
int main()
{
int y,n;
scanf("%d %d",&x,&n);
y=sh(n);
printf("%d",y);
return 0;
}
int sh(int n)
{
if(n>=2)
return(x*sh(n-1));
else
return x*1;
}
25 1043 不会
#include <stdio.h>
float pn(float ,int ); //这个是float pn(float x,int n)
int main()
{
int n;
float x;
float y;
scanf("%f %d",&x,&n);
y=pn(x,n);
printf("%.4f",y);
return 0;
}
float pn(float x,int n)
{
if(n>1)
return((2*n-1)*x-pn(x,n-1)-(n-1)*pn(x,n-2))/n;
else if(n==1)
return x;
else return 1;
}
26 1044 不会 用成递归了
#include <stdio.h>
int pn(int ,int);
int main()
{
int m,i=2;
scanf("%d",&m);
pn(m,i);
return 0;
}
int pn(int m,int i)
{
if(m%i==0)
{
m=m/i;
printf("%d ",i);
return pn(m,i);
}
else
{
i=i+1;
return pn(m,i);
}
return 0;
}
#include <stdio.h>
int pn(int ,int);
int main()
{
int m,i=2;
scanf("%d",&m);
pn(m,i);
return 0;
}
int pn(int m,int i)
{
if(m%i==0)
{
m=m/i;
printf("%d ",i);
return pn(m,i);
}
else
{
i=i+1;
return pn(m,i);
}
}
不可以递归 以下结果正确通不过
#include <stdio.h>
int pn(int ,int );
int main()
{
int m,i=2;
scanf("%d",&m);
pn(m,i);
return 0;
}
int pn(int m,int i)
{
if(m%i==0)
{
m=m/i;
printf("%d ",i);
return pn(m,i);
}
else if(m%i!=0)
{
i=i+1;
return pn(m,i);
}
}
#include <stdio.h>
int pn(int );
int main()
{
int m;
scanf("%d",&m);
pn(m);
return 0;
}
int pn(int m)
{
int i=2;
for(i=2;i<=m;)
{
if(m%i==0)
{
m=m/i;
printf("%d ",i);
}
else i++;
}
return 0;
}
27 1048 不会
#include<stdio.h>
#include<math.h>
float pn(float ,int ); //float
int main()
{
int n;
float x;
scanf("%f %d",&x,&n);
printf("%.2f\n",pn(x,n));
return 0;
}
float pn(float x,int n)
{
if(n==1) //这个if必须有不有答案是1.#5
return x; //又是==!!!!
else if(n>1)
{
return pow(-1,n-1)*pow(x,n)+pn(x,n-1);
}
}
28 1085
#include<stdio.h>
#include<math.h>
float fun(int );
int main()
{
int n;
scanf("%d",&n);
printf("%.2f",fun(n));
}
float fun(int n)
{
float s=0,t=0;
int i;
for(i=1;i<=n;i++)
{
t=t+i;
s=s+1.0/t;
}
return s;
}
29 1086
#include<stdio.h>
int sum(int );
int main()
{
int n;
scanf("%d",&n);
printf("%d",sum(n));
return 0;
}
int sum(int n)
{
int m,s=0;
scanf("%d",&m);
while(m!=0)
{
if(m%n==0)
s=s+m;
scanf("%d",&m);
}
return s;
}
30
下面是《顺序结构》
1065 coldblocks上错误!
#include<stdio.h>
int main ()
{
int a,b,c;
scanf("%d,%d",&a,&b); /*晓得了 编译时一开始是汉语输入,
这里要是改为汉语就正确输入了。或者编译时点个切换*/
c=a;
a=b;
b=c;
printf("%d,%d",a,b);
return 0;
}
31 1066
#include<stdio.h>
int main ()
{
char a,b,c; //字符定义 也是编译时开始为汉语
scanf("%c",&a);
if('a'<=a&&a<='z')
{
b=a-32;
}
printf("%c,%c\n%d,%d",a,b,a,b);
return 0;
}
32 1073
下面是《选择结构》
#include<stdio.h>
int main ()
{
int i;
scanf("%d",&i);
switch(i)
{
case 0:printf("sunday"); break;
case 1:printf("monday");break;
case 2:printf("thesday");break;
case 3:printf("wendesday");break;
case 4:printf("thursday");break;
case 5:printf("friday");break;
case 6:printf("saturday");break;
default:printf("Error");
}
return 0;
}屁事没有反正不让过
#include <stdio.h>
int main()
{ int i;
scanf("%d",&i);
switch(i)
{
case 0:printf("Sunday\n");break;
case 1:printf("Monday\n");break;
case 2:printf("Tuesday\n");break;
case 3:printf("Wednesday\n");break;
case 4:printf("Thursday\n");break;
case 5:printf("Friday\n");break;
case 6:printf("Saturday\n");break;
default:printf("Error\n");
}
return 0;
}
33 1075
#include<stdio.h>
int main() //编译时先换为英语
{
float x,y,z;
char ch;
scanf("%f,%f\n%c",&x,&y,&ch);
if(ch=='+')
{
z=x+y;
printf("%.2f+%.2f=%.2f",x,y,z);
}
else if(ch=='-')
{
z=x-y;
printf("%.2f-%.2f=%.2f",x,y,z);
}
else if(ch=='*')
{
z=x*y;
printf("%.2f*%.2f=%.2f",x,y,z);
}
else if(ch=='/')
{
if(y!=0)
{
z=x/y;
printf("%.2f/%.2f=%.2f",x,y,z);
}
else printf("input error");
}
else
{
printf("input error");
}
}
34 1076
#include<stdio.h>
int main()
{
int a,x;
float t,t1,t2;
scanf("%d\n%d\n%f",&a,&x,&t);
if(a==1||a==7||a==8||a==9)
{
if(x>=20)
{
t1=0.05*t*x;
t2=0.95*t*x;
printf("5%%"); //5%%
printf(",%.2f,%.2f",t1,t2);
}
else
{
t1=0*x*t;
t2=x*t;
printf("0%%");
printf(",%.2f,%.2f",t1,t2);
}
}
else if(a==2||a==3||a==4||a==5||a==6||a==10||a==11||a==12)
{
if(x>=20)
{
t1=0.20*t*x; //0.20
t2=0.80*t*x;
printf("20%%");
printf(",%.2f,%.2f",t1,t2);
}
else
{
t1=0.10*t*x;
t2=0.90*t*x;
printf("10%%");
printf(",%.2f,%.2f",t1,t2);
}
}
else printf("month error");
return 0;
}
35 1077
自己的方法
#include<stdio.h>
int main()
{
int i,a,b,c,x;
scanf("%d:%d:%d",&a,&b,&c);
if(a==0) //二十四小时制为0
{
x=12;
if(b/10==0&&b%10!=0&&c/10==0&&c%10!=0)
printf("%d:0%d:0%dpm",x,b,c);
else if(b/10==0&&b%10!=0)
printf("%d:0%d:%dpm",x,b,c);
else if(c/10==0&&c%10!=0)
printf("%d:%d:%dpm",x,b,c);
else printf("%d:%d:%dpm",x,b,c);
}
else if(a>=1&&a<12)
{
if(b/10==0&&b%10!=0&&c/10==0&&c%10!=0)
printf("%d:0%d:0%dam",a,b,c);
else if(b/10==0&&b%10!=0)
printf("%d:0%d:%dam",a,b,c);
else if(c/10==0&&c%10!=0)
printf("%d:%d:%dam",a,b,c);
else printf("%d:%d:%dam",a,b,c);
}
else if(a==12)
{
printf("12:%.2d:%.2dpm",b,c); //中午12点为pm
}
else
{
x=a-12;
if(b/10==0&&b%10!=0&&c/10==0&&c%10!=0)
printf("%d:0%d:0%dpm",x,b,c);
else if(b/10==0&&b%10!=0)
printf("%d:0%d:%dpm",x,b,c);
else if(c/10==0&&c%10!=0)
printf("%d:%d:%dpm",x,b,c);
else printf("%d:%d:%dpm",x,b,c);
}
return 0;
}
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d:%d:%d",&a,&b,&c);
if(a==0) //二十四小时制为0
{
printf("12:%.2d:%.2dam",b,c); //输入时a=01,输出时a=1
}
else if(a<12)
{
printf("%d:%.2d:%.2dam",a,b,c);
}
else if(a==12)
{
printf("12:%.2d:%.2dpm",b,c); //中午12点为pm
}
else
{
printf("%d:%.2d:%.2dpm",a-12,b,c);
}
return 0;
}
%d:为普通的输出;
%2d:按宽度为2输出,右对齐方式输出。若不够两位,左边补空格;
%02d:同样宽度为2,右对齐方式输出。位数不够,左边补0;
%.2d:从执行效果方面,与%02d一样。
%2f是把float的所有位数输出2位,包括小数点,如果不组2位,补0,如果超过2位,按照实际输出
%.2f是float后的小数只输出两位。
36 1078
#include<stdio.h>
int main()
{
int i=0,j,y,x;
scanf("%d",&y);
while(y/10!=0)
{
x=y%10;
y=y/10;
i=i+x;
}
i=i+y;
printf("sum=%d",i);
return 0;
}
37 1079
#include<stdio.h>
#include<math.h>
int main()
{
int i,n;
float t=0,s=0,f=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
f=(2.0*i)*(2.0*i); //找了好长时间 这里是i不是n
t=(2.0*i-1.0)*(2.0*i+1.0)/f;
s=s+t;
}
printf("%.4f",s);
return 0;
}
#include<stdio.h>
#include<math.h>
int main()
{
int i,n;
float t=0,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=(2.0*i-1.0)*(2.0*i+1.0)/pow(2.0*i,2);
s=s+t;
}
printf("%.4f",s);
return 0;
}
38 1080 不会
#include<stdio.h>
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++) //五行增加
{
for(j=1;j<=i;j++) //一行 j<=i不是j<=n
printf("%d ",j);
for(j=j-2;j>=1;j--) //
printf("%d ",j);
printf("\n"); //
}
for(i=n-1;i>=1;i--) //四行
{
for(j=1;j<=i;j++) //以行数
printf("%d ",j);
for(j=j-2;j>=1;j--)
printf("%d ",j);
printf("\n");
}
return ;
}
39 1081
#include<stdio.h>
int main()
{
int x,y,i,j,t;
scanf("%d %d",&x,&y);
if(x>y)
{
t=x;
x=y;
y=t;
}
for(i=x;i<=y;i++)
{
for(j=x;j<=i;j++)
printf("%d*%d=%-4d",i,j,i*j);
printf("\n");
}
return 0;
}
40 1082 不会 else
#include<stdio.h>
int main()
{
int a,b,c,m,n,x,y,i;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
x=i/9;
a=i%10;
b=(i/10)%10;
c=i/100;
y=a*a+b*b+c*c;
if(x==y)
printf("%d\n",i);
}
return 0;
}
41 1083 容易
#include <stdio.h>
int main()
{
int i,n,a,b,c,sum=0; //非sum==0,这里是赋值
scanf("%d",&n);
for(i=1;i<n;i++)
{
a=i%10;
b=(i/10)%10;
c=i/100;
if(a==6)
sum+=i;
else if(b==6) //加else !
sum+=i;
else if(c==6)
sum+=i;
}
printf("sum=%d",sum);
return 0;
}
42 10
#include<stdio.h>
int main()
{
int x,y,a,b,c,n;
scanf("%d",&n);
a=n/5;
x=n-a*5;
while(x==0)
{
a=a-1;
x=n-a*5;
}
b=x/2;
y=x-b*2;
c=y;
while(y==0)
{r
b=b-1;
c=2;
}
printf("%d %d %d",a,b,c);
return 0;
}
43 1084 时间长才对了
#include<stdio.h>
int main()
{
int x,y,a,b,c,n;
scanf("%d",&n);
a=n/5;
x=n-a*5;
while(x==0)
{
a=a-1;
x=n-a*5;
}
while(x==1) //思考重新 题目,还有16
{
a=a-1;
x=n-a*5;
}
b=x/2;
y=x-b*2;
c=y;
while(y==0)
{
b=b-1;
c=2;
}
printf("%d %d %d",a,b,c);
return 0;
}
下面是《数组》
1033 不会
printf("%d",a[i][j]);
if(j==4)
printf("\n");
else printf(" ");
正确答案
#include<stdio.h>
#include<stdio.h>
#include<string.h>
int main()
{
int a[5][5],i,j;
int max,t=0,m;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]); //无括号
for(i=0;i<5;i++)
{
m=a[i][0];
int column=0;
max=abs(a[i][0]);
for(j=1;j<5;j++) //1
//无空格?
if(abs(a[i][j])>max) //abs
{
max=abs(a[i][j]);
m=a[i][j];
column=j; //首部定义?
}
t=a[i][i]; //且这些在for括号里
a[i][i]=m; //a[i][i]不直接赋给a[i][column]
a[i][column]=t; //a[i][column]不直接赋给a[i][i]
}
for(i=0;i<5;i++)
//五括号?
for(j=0;j<5;j++)
{
if(j<4)
printf("%d ",a[i][j]);
if(j==4)
printf("%d\n",a[i][j]);
}
return 0;
}
//colume的定义位置 ,三个交换的位置,{}
解析
#include<stdio.h>
#include<stdio.h>
#include<string.h>
int main()
{
int a[5][5],i,j;
int max,t=0,m;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]); //无括号
for(i=0;i<5;i++)
{
int column=0; //!!!
max=abs(a[i][0]);
for(j=1;j<5;j++) //1
//无空格?
if(abs(a[i][j])>max) //abs
{
max=abs(a[i][j]);
column=j; //首部定义?
}
t=a[i][i]; //且这些在for括号里
a[i][i]=a[i][column]; //就是普通的交换
a[i][column]=t;
}
for(i=0;i<5;i++)
//无括号?
for(j=0;j<5;j++)
{
if(j<4)
printf("%d ",a[i][j]);
if(j==4)
printf("%d\n",a[i][j]);
}
return 0;
}
//column的定义位置:必须在第一个for括号里!!
//三个交换的位置是普通的
//{}:for后面可以接着一个大括号而他自己不带括号
自己又做了一遍
#include<stdio.h>
int main()
{
int i,j,max,a[5][5],t;//
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]); //& //"%d"
for(i=0;i<5;i++)
{
int column=0; //这个要放第一个括号里
max=abs(a[i][0]);
for(j=0;j<5;j++)
{
if(abs(a[i][j])>max)
column=j;
}
t=a[i][i];
a[i][i]=a[i][column];
a[i][column]=t;
}
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
printf("%d",a[i][j]);
if(j==4) //4
printf("\n");
else printf(" ");
}
return 0;
}
1038 不会
开始的错误的
#include<stdio.h>
int main()
{
int m, n, r, i, j, k, t;
scanf("%d%d", &m, &n);
r = m + n, i = m, j = n;
int a[i], b[j], c[r];
for(i = 0; i < m; i++)
scanf("%d", &a[i]);
for(j = 0; j < n; j++)
scanf("%d", &b[j]);
i = 0, j = 0;
for(k = 0; k < m; k++)
{
c[k] = a[i];
i++;
}
for(k = m; k < m + n; k++)
{
c[k] = b[j];
j++;
}
for(k = 0; k < m + n; k++)
for(r = 0; r < m + n; r++)
if(c[r+1] < c[r])
{
t = c[r+1];
c[r+1] = c[r];
c[r] = t;
}
for(r = 1; r <= m + n; r++)
printf("%d ", c[r]);
return 0;
}
————————————————
版权声明:本文为CSDN博主「伶回合」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43479432/article/details/104918718
#include<stdio.h>
#define N 20
int main()
{
int m,n,i,j,t;
int a[N],b[N],c[2*N];
scanf("%d %d",&m,&n);
for(i=0;i<m;i++)
scanf("%d",a[i]);
for(i=0;i<n;i++)
scanf("%d",b[i]);
i=0;
j=0;
t=0;
while(i<m&&j<n)
{
if(a[i]<b[j])
{
c[t]=a[i];
i++;
t++;
}
else
{
c[t]=b[j];
j++;
t++;
}
}
while(i<m)
{
c[t]=a[i];
c++;
t++;
}
while(j<n)
{
c[t]=b[j];
j++;
t++;
}
return 0;
}
1041 易错
#include<stdio.h>
#define N 10000
int main()
{
int x,j,k,i=0;
scanf("%d",&x);
int a[N],b[N];
while(x/2!=0)
{
a[i]=x%2;
x=x/2;
i++; //!
}
//i++; 循环结束前多加了一个i,若再i++,中间一个数组未赋值,变为0
a[i]=x%2;
k=0;
for(j=i;j>=0;j--)
{
b[k]=a[j];
k++; //!
}
for(i=0;i<k;i++) //i<=k,循环结束前多加了一个k
printf("%d",b[i]);
return 0;
}
1042
错误
#include<stdio.h>
#define N 100
int main()
{
int n,i;
int a[N];
scanf("%d",&n);
a[0]=1;
a[1]=1;
for(i=2;i<n;i++)
{
a[i]=a[i-1]+a[i-2];
}
for(i=0;i<n;i++)
{
if(i!=4) //这里是4 !!
printf("%d ",a[i]);
else printf("%d\n",a[i]);
}
return 0;
}
正确
#include<stdio.h>
#define N 100
int main()
{
int n,i,j,a,b,c;
int a[N];
scanf("%d",&n);
if(n==0)
printf("1 ");
else if(n==1)
printf("1 1 ");
else
{
a=1;
b=1;
for(i=1;i<n;i++)
{
c=a+b;
a=b;
b=c;
c=a[i];
if(i!=4)
printf("%d ",a[i]);
else printf("%d\n",a[i]);
}
}
}
return 0;
}
1043 搜的下面也不对
#include<stdio.h>
#define N 100
int main()
{
int n=0,a[N];
scanf("%d",&n);
a[0]=1;
a[1]=1;
for(int i=0;i<n;i++)
{
if(i>=2)
a[i]=a[i-1]+a[i-2];
(i==4)?printf("%d\n",a[i]):printf("%d ",a[i]);
}
return 0;
}
#include<stdio.h>
#define N 100
int main()
{
int t=0,i,a[N];
for(i=0;i<10;i++)
{
scanf("%d ",a[i]);
}
for(i=0;i<10;i++)
{
t=a[i];
a[i]=a[i-1];
a[i-1]=t;
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
#include<stdio.h> //拓展
#define N 100
int main()
{
int t=0,i,a[N];
for(i=0;i<2;i++) //为啥要输入三个数
{
scanf("%d ",a[i]);
}
printf("17656");
return 0;
}
1047 不会
#include<stdio.h>
#define N 100
int main()
{
int i,j=0,n,t,k,f,g,a[N],b[N],c[N];
for(i=0;i<5;i++)
scanf("%d",a[i]);
for(;;j++)
{
scanf("%d",b[j]);
n=j-1;
if(b[j]==-1)
break;
}
i=0;
j=0;
t=0;
while(i<5&&j<n)
{
if(a[i]<a[j])
{
c[t]=a[i];
i++;
t++;
}
else
{
c[t]=b[j];
j++;
t++;
}
if(i<5)
{
c[t]=a[i];
t++;
i++;
}
if(j<n)
{
for(k=j;k<n-1;k++)
{
for(f=k+1;f<n;f++)
{
if(b[k]>b[f])
g=b[k];
b[k]=b[f];
b[f]=g;
}
}
for(;j<n;j++)
{
c[t]=b[j];
t++;
j++;
}
}
}
return 0;
}
正确答案?
#include <stdio.h>
int main()
{
int n=5,x,i;
int a[20];
for ( i = 0; i <n; i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&x);
while (x!=-1)
{
for ( i = n-1; i>=0&&x<a[i]; i--)
{
a[i+1]=a[i];
}
a[i+1]=x;//本来是赋给a[i],但出循环时执行i--,所以这里x赋给了i+1
n++;
scanf("%d",&x);
}
for ( i = 0; i <n; i++)
{
printf("%d ",a[i]);
}
return 0;
}
1049 搜了一下
#include<stdio.h>
#define N 20
int main()
{
int i;
char a[N];
scanf("%c",&a[0]); //!!!
for(i=0;a[i]!='\n';)
{
if(a[i]>='a'&&a[i]<='z')
{
a[i]=(a[i]-'a'+3)%26+'a';
printf("%c",a[i]);
}
else if(a[i]>='A'&&a[i]<='Z')
{
a[i]=(a[i]-'A'+3)%26+'A';
printf("%c",a[i]);
}
else printf("%c",a[i]);
i++;
scanf("%c",&a[i]); //scanf位置
}
return 0;
}
1087 搜了一下
#include<stdio.h>
#include<string.h>
int main()
{
int i,t=0;
char c[20],b[20],a;
scanf("%c",&a);
scanf("%s",c);
for(i=0;c[i]!='\0';i++) //!!不是\n
{
if(c[i]!=a)
{
b[t]=c[i];
t++;
}
}
b[t]='\0'; //!!!!字符串末尾加\0
if(strlen(c)==strlen(b)) //也可t==i
printf("not found");
else printf("%s",b);
return 0;
}
1088
#include<stdio.h>
#include<string.h>
#define N 10
int main()
{
int a[N][3];
int i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d/%d/%d",&a[i][1],&a[i][2],&a[i][3]);
}
for(i=0;i<n;i++)
{
printf("%.2d/%.2d/%d\n",a[i][2],a[i][3],a[i][1]);
} //.2f才是01 2f是 1
return 0;
}
1089 ?搜了 ,有输入数据不运行的问题!
#include<stdio.h>
int main()//把m个数字中的n个数字右移//
{
int i,j,t,m,n;
int a[100];//
scanf("%d %d",&m,&n);//可以在这俩之间输入换行,代替空格
for(i=0;i<m;i++) //
{
scanf("%d",&a[i]);//!!!!%d后不能有空格 不然输入数据黑片不运行。可以输入空格 也可以输换行
}
for(i=0;i<=n-1;i++) //<=n-1
{
t=a[m-1];//倒一项
for(j=m-1;j>=0;j--)
{
a[j]=a[j-1];//倒二项赋给倒一项
}
a[0]=t;
/*j=i+1;是交换每俩项
t=a[i];
a[i]=a[j];
a[j]=t;*/
}
for(i=0;i<m;i++) //
{
printf("%d ",a[i]);
}
return 0;
}
1050
#include <stdio.h>
#define N 20
struct stud_type
{
int num;
char name;
float a;
float b;
float c;
float ave;
};
void average(float ,float ,float );
int main()
{
int i,t=0,k=0,j=0;
float b[N],c[N];
struct stud_type stu[5];
for(i=0;i<5;i++)
{
scanf("%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);
}
for(i=0;i<5;i++)
stu[i].ave=average(stu[i].a,stu[i].b,stu[i].c);
for(i=0;i<5;i++)
{
b[i]=stu[i].ave;
}
for(i=0;i<3;i++)// 不是4 是3
{
k=i;
for(j=i+1;j<5;j++)
if(b[k]<b[j])
k=j;
if(k!=i)
{
t=b[i];
b[i]=b[k];
b[k]=t;
c[i]=k;
}
}
for(i=0;i<5;i++)
{
printf("%d %s %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].a,stu[i].b,stu[i].c,stu[i].ave);
}
for(i=0;i<3;i++)
{
printf("%d %s %.2f %.2f %.2f %.2f\n",stu[c[i]].num,stu[c[i]].name,stu[c[i]].a,stu[c[i]].b,stu[c[i]].c,stu[c[i]].ave);
}
return 0;
}
float average(float a,float b,float c)
{
return (a+b+c)/3.0;
}
看书之后 搜了之后
#include <stdio.h>
#define N 20
struct stud_type
{
int num[5]; //char [] 用char的话输出结果是02
char name[20];
float a;
float b;
float c;
float ave;
};
int input(struct stud_type []);
void average(struct stud_type []);
void sort(struct stud_type []); //[]
void sortdisplay(struct stud_type []); //struct
int main()
{
int i;
struct stud_type stu[5];
input(stu);
average(stu);
for(i=0;i<5;i++)
{
printf("%d %s %.2f %.2f %.2f %.2f\n",stu[i].num[0],stu[i].name,stu[i].a,stu[i].b,stu[i].c,stu[i].ave);
} //这个为啥num加[0]?
sort(stu);
sortdisplay(stu);
return 0;
}
int input(struct stud_type stu[])
{
int i;
for(i=0;i<5;i++)
{
scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);
} //无空格 //为啥答案这个%d不加& 实践表示加不加都可
}
void average(struct stud_type stu[])
{
int i;
for(i=0;i<5;i++)
stu[i].ave=(stu[i].a+stu[i].b+stu[i].c)/3.0;
}
void sort(struct stud_type b[]) //[]
{
int i,k,j;
struct stud_type t;
for(i=0;i<4;i++)// 不是4 是3
{
k=i;
for(j=i+1;j<5;j++)
if(b[k].ave<b[j].ave)
k=j;
if(k!=i)
{
t=b[i];
b[i]=b[k];
b[k]=t;
}
}
}
void sortdisplay(struct stud_type stu[])
{
int i;
for(i=0;i<3;i++)
{
printf("%d %s %.2f %.2f %.2f %.2f\n",stu[i].num[0],stu[i].name,stu[i].a,stu[i].b,stu[i].c,stu[i].ave);
}
}
1090
自己的
#include<stdio.h>
#define N 20
struct stud_type
{
char name[20];
int num[8];
};
int inputsort(struct stud_type []);
int main()
{
struct stud_type stu[N];
stu[0].num[20]=stu[1].num[20]=stu[2].num[20]=0; //单个元素赋值要加num[20]
inputsort(stu);
printf("%s:%d\n%s:%d\%s:%d",stu[0].name,stu[0].num,stu[1].name,stu[1].num,stu[2].name,stu[2].num);
} //0开始 //输出输入不加num[29]
int inputsort(struct stud_type stu[])
{
int i,j=0;
char b[8][20];
for(i=0;i<8;i++)
{
scanf("%s",b[i][20]);
stu[0].num[20]=b[0][20];
while(stu[1].num[20]=='\0'&&b[i][20]!=stu[0].num[20])
{
stu[1].num[20]=b[i][20];
}
while(b[i][20]!=stu[0].num[20]&&b[i][20]!=stu[1].num[20])
{
stu[2].num[20]=b[i][20];
}
}
for(i=0;i<8;i++)
if(b[i][20]==stu[0].name)
stu[0].num[20]++;
else if(b[i][20]==stu[1].name)
stu[1].num[20]++; //num[20]
else
stu[2].num[20]++;
}
搜的
#include<stdio.h>
#include<string.h>
#define N 20
struct stud_type
{
char name[20];
int num;
};
int inputsort(struct stud_type []);
int main()
{
struct stud_type stu[3]={{"Li",0},{"Zhang",0},{"Wang",0}};
inputsort(stu);
return 0;
}
int inputsort(struct stud_type stu[])
{
int i,j;
char b[20];
for(i=0;i<8;i++)
{
scanf("%s",b); //不是b[20] ,字符赋值加减有[20],字符比较 输入输出没有[20]
for(j=0;j<3;j++)
if(strcmp(b,stu[j].name)==0) // //不是b[20]
stu[j].num++; //
}
for(i=0;i<3;i++)
{
printf("%s:%d\n",stu[i].name,stu[i].num);
}
}
1091
#include<stdio.h>
#include<string.h>
struct stud_type
{
char num[20];
char name[20];
int score;
};
int main()
{
int i=0,k=0;
char n[20]; //n[20]
struct stud_type a[5];
for(i=0;i<5;i++)
scanf("%s%s%d",a[i].num,a[i].name,&a[i].score);
scanf("%s",n); //!!!非&n
for(i=0;i<5;i++)
{
if(strcmp(a[i].num,n)==0) //strcmp n
{
printf("%s %s %d",a[i].num,a[i].name,a[i].score);
k=1;
break;
}
}
if(k=0)
printf("not found");
return 0;
}
109
#include<stdio.h>
#include<string.h>
#define N 20
struct stud_type
{
char num[20];
char name[20];
int year;
union
{
int n;
char m;
}score;
};
int main()
{
int i,x,t=0;
struct stud_type a[N];
scanf("%d",&x);
for(i=0;i<x;i++)
{
scanf("%s%s%d",a[i].num,a[i].name,&a[i].year);
if(a[i].year<30)
scanf("%d",&a[i].score.n);
else scanf("%c",&a[i].score.m);
}
for(i=0;i<x;i++)
{
if(a[i].year<30)
{
if(a[i].score.n>=60)
{
printf("%d\n",a[i].score.n);
t++;
}
}
else
{
if(a[i].score.m<='C')
{
printf("%c\n",a[i].score.m);
t++;
}
}
}
printf("%d",t);
return 0;
}
#include<stdio.h>
#include<string.h>
#define N 20
struct stud_type
{
int num;
char name[20];
int year;
union
{
int n;
char m;
}score;
};
int main()
{
int i,x,t=0;
scanf("%d",&x);
struct stud_type a[x];
for(i=0;i<x;i++)
{
scanf("%d",&a[i].num);
scanf("%s",a[i].name);
scanf("%d",&a[i].year);
if(a[i].year<30)
scanf("%d",&a[i].score.n);
else scanf("%c",&a[i].score.m);
}
for(i=0;i<x;i++)
{
if(a[i].year<30)
{
if(a[i].score.n>=60)
{t++;
printf("%d\n",a[i].score.n);
}
}
else
{
if(a[i].score.m<'C') //
{t++;
printf("%c\n",a[i].score.m);
}
}
}
printf("%d",t);
return 0;
}
通过键盘输入 “字符串” 后按 “回车”,回车会保留在输入缓冲区中,这就会给程序造成影响
函数getchar来消除回车符号
char c;
c = getchar();
getchar();//吸收回车符
若getchar 在后面 结果:
4
2001 zhang 25 80
2002 zhao 45 B
2003 qian 25 50
2004 wang 35 C
80
3
???
#include<stdio.h>
#include<string.h>
#define N 20
struct stud_type
{
int num;
char name[20];
int year;
union
{
int n;
char m;
}score; //
};
int main()
{
int i,x,t=0;
scanf("%d",&x);
struct stud_type a[x]; //
for(i=0;i<x;i++)
{
scanf("%d%s%d",&a[i].num,a[i].name,&a[i].year);
if(a[i].year<30)
scanf("%d",&a[i].score.n); //
else
{
getchar(); //!!!输入回车符不保存?
scanf("%c",&a[i].score.m);
}
}
for(i=0;i<x;i++)
{
if(a[i].year<30)
{
if(a[i].score.n>=60)
{
printf("%d\n",a[i].score.n);
t++;
}
}
else
{
if(a[i].score.m<='C')
{
printf("%c\n",a[i].score.m);
t++;
}
}
}
printf("%d",t);
return 0;
}
1053
#include <stdio.h>
int main()
{
enum color
{
red=0, yellow, blue, green, black, white
}col;
int i;
scanf("%d",&i);
col=(enum color)i;
switch (col)
{
case 0:printf("red");
break;
case 1:printf("yellow");
break;
case 2:printf("blue");
break;
case 3:printf("green");
break;
case 4:printf("black");
break;
case 5:printf("white");
break;
}
system("pause");
return 0;
}
1054
#include<stdio.h>
void sort(int *,int *,int *);
int main()
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
int *p=&x,*q=&y,*t=&z;
sort(p,q,t);
return 0;
}
void sort(int *a,int *b,int *c)
{
int *t1,*t2,*t3;
if(*a>*b)
{
t1=a;
a=b;
b=t1;
}
if(*a>*c)
{
t2=a;
a=c;
c=t2;
}
if(*b>*c)
{
t3=b;
b=c;
c=t3;
}
printf("%d<%d<%d",*a,*b,*c);
}