第一周博客

判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。

输入格式:

输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。

输出格式:

按照输入的顺序输出每个学生的得分,每个分数占一行。

#include<iostream>
using namespace std;

int main(){
    int n,m;
    int score[101];
    int answer[101];
    int a[101];//学生的答案
    cin>>n>>m;
    for(int i=0;i<m;i++){
        cin>>score[i];
    }
    for(int i=0;i<m;i++){
        cin>>answer[i];
    }
    
    for(int i=0;i<n;i++){
        int result=0;
        for(int j=0;j<m;j++){
            cin>>a[j];
            if(a[j]==answer[j]){
                result+=score[j];
            }
        }
        cout<<result<<endl;
    }
    return 0;
}

 线性表插入元素

#include "pch.h"
#include<cstdio>
#include<iostream>
#define MaxSize 50
using namespace std;

typedef struct{
	int *elem;
	int length;
}SqList;

int ListInsert_Sq(SqList &L, int i, int e) {
	if (i<1 || i> L.length+1)
		return 1;

	if (L.length == MaxSize)
		return 1;

	//cout << 99;
	for (int j = L.length - 1; j >= i - 1; j--) {
		L.elem[j + 1] = L.elem[j];
	}

	L.elem[i-1] = e;
	L.length++;
	return 0;
}

int GetLength(SqList L) {
	return(L.length);
}

int IsEmpty(SqList L) {
	if (L.length == 0)
		return 1;
	else
		return 0;
}

int InitList_Sq(SqList &L) {
	L.elem = new int[MaxSize];
	if (!L.elem)
		return 1;
	L.length = 0;
	return 0;
}

int main() {	
	int n;
	SqList L;
	InitList_Sq(L);

	printf("请输入长度:");	
	cin >> n;
	L.length = n;
	printf("再输入数组元素:");

	for (int i = 0; i < n; i++) {		
		cin >> L.elem[i];
	}

	ListInsert_Sq(L,2,9);

	for (int i = 0; i < L.length; i++) {
		cout<< L.elem[i];
	}
	//cout << L.length;
	return 0;
}

 C++实现单向链表删除,插入,排序,查找

#include<cstdio>
#include<cstdlib>
using namespace std;

struct node{
	int data;
	node* next;
};

//创建链表 
node* create(int array[]){
	node *p, *head, *pre;//pre为前驱结点 
	head=new node;
	head->next=NULL;
	pre=head;
	for(int i=0; i<5; ++i){
		p= new node;
		p->data=array[i];
		p->next=NULL;
		pre->next=p;
		pre=p;
	} 
	return head;
}


// 插入
// 将x插入到以head为头节点的pos位置上 
void insert(node* head, int pos, int x){
	node *p=head;
	for(int i=0;i<pos-1;i++){//比如要插到第三个位置,从0开始的话就是下标为2,前一个下标为1 
		p=p->next;// 1 < 3-1 
	}
	node* q=new node;
	q->data=x;
	q->next=p->next;
	p->next=q;
} 

//删除 
//删除所有值为x的数 
void del(node* head, int x){
	node* p= head->next;
	node* pre=head;
	while(p!=NULL){
		if(p->data==x){
			pre->next=p->next;
			delete(p);
			p=pre->next;
		}else{
			pre=p;
			p=p->next;
		}
	} 
}

//查找 
//查找链表中有几个x,返回count值 
int search(node *head, int x){
	int count=0;
	node *p=head->next;
	while(p!=NULL){
		if(p->data==x){
			count++;
		}
		p=p->next; 
	} 
	return count;
} 

//排序
//冒泡排序
void sort(node *head){
	for(node *temp=head->next;temp->next!=NULL;temp=temp->next){
		for(node *p=head->next;p->next!=NULL;p=p->next){
			if(p->data > p->next->data){
				int t=p->data;
				p->data=p->next->data;
				p->next->data=t;
			}
		}
	}
} 

int main(){
	int array[5]={6,3,9,1,2};
	node* L=create(array);	//返回头节点L 
	
	//insert(L, 3, 8);  //插入后结果为6,3,8,9,1,2 
	
	//del(L, 9); //删除后结果为6,3,1,2 
	
	/*查找 
	int y=9; 
	int x=search(L, y);
	printf("查找到%d个%d\n", x, y);
	*/
	
	//sort(L);  //排序 
	
	//遍历打印 
	L=L->next;	//头节点L是没有数据域的,下个结点才有 
	while(L != NULL){
		printf("%d ",L->data);
		L=L->next;
	} 
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值