C语言博客作业--结构体
struct complex{
int real;
int imag;
};//该结构体表示复数的实部和虚部
定义结构变量z
z的实部等于x,y实部的积减x,y虚部的积
z的虚部等于x的实部*y的虚部+x的虚部*y的实部
return z
本题能较好完成
struct clerk{
char name[10];
float shifa,jiben,fudong,zhichu;
};分别表示职员的名字,实发,基本,浮动,支出的金额
定义整形 i,N
定义结构变量s
for i=0 to i<N
输入输入职员的姓名、基本工资、浮动工资,支出
for i=0 to i<N
实发工资=基本工资+浮动工资-支出
输出职员的名字,和实发工资
答案错误:开始看给出的数据,以为输入的数是整形的,所以把输入的数定义为整形
导致答案一直错误。后询问同学得知。
struct adress{
char name[11];
char birth[12];
char sex[2];
char guding[150];
char phone[150];
};分别表示名字,生日,性别,固话,手机
定义整形变量N放人数,i,K查找次数,a,j
输入N的值
定义结构变量s
for i=0 to i<N
输入名字,生日,性别,固话,手机
输入k的值
for j=0 to j<k
输入a的值
如果有a的值
输出名字,固话,手机,性别,生日
如果没有就输出Not Found
部分正确:在判断查找记录时,没有考虑a<0这一条件,导致有测试点过不去。
多次尝试后发现问题,予以补充。
#include<conio.h>
#include<stdio.h>
#defineM50
voidFun(inta[],intx,int*n) {
inti,j;
for(i=0;i<*n;i++)
if(x>a[i])
break;
for(j=*n;j>i;j--)
a[j]=a[j-1];
a[i]=x;
*n=*n+1; }
voidmain()
{ inta[M]={20,15,13,10,9,6,5},x,n=7,k;
scanf("%d",&x);
Fun(a,x,&n);
for(k=0;k<n;k++)
printf("%d",a[k]); }
本题的目的是一个有序数组加入一个数仍然有序。pta数组有个相同题目我的做法是把数组扩大,然后用冒泡法从新排序
虽然正确通过,但是与这个代码相比效率显得有点低。它的做法是遍历数组找到比它小的一个停止,然后对后面的值赋值。
代码看起来简洁,效率也很高。
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main(){
int t,ra=0;
cin>>t;
for(int i=1;i<=t;i++){
ra+=9;
if(i%10==0&&ra>3*i)
i+=30;
}
if(ra>3*t) cout<<"^_^ "<<ra<<endl;
else if(ra==3*t) cout<<"-_- "<<ra<<endl;
else cout<<"@_@ "<<3*t<<endl;
return 0;
}
该题为龟兔赛跑。
因为龟是一直走的所以不用进行判断,对兔子的行程判断,每10分钟判断一次,
比龟的长,直接停30分钟最后比较路程。思路很直接,代码简洁,高效。
-1.同一个内存段可以用来存放几种不同类型的成员,但是在每一瞬间只能存放其中的一种,而不是同时存放几种。
每一瞬间只有一个成员起作用,其他的成员不起作用,即不是同时都在存在和起作用。
以为开始是奇数直接值加二就可以
正确做法是要判断是否为奇数,是的话就求和
这题的做法是用结构变量,开始预习不充分就用了以前的知识来做
还有一点就是字符串的比较需要调用库函数strcmp