一、矩阵对角线元素
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
LL s=0;
int n;
cin>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
int x;
cin>>x;
if(i==j)s+=x;
if(i+j==n-1)s+=x;
}
}
cout<<s;
return 0;
}
二、统计字符个数
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s);
int digit=0,letter=0,other=0;
for(char x : s)
{
if(x>='0'&&x<='9')digit++;
else if((x>='a'&&x<='z')||(x>='A'&&x<='Z'))letter++;
else other++;
}
printf("%d %d %d",digit,letter,other);
return 0;
}
三、单链表
#include<bits/stdc++.h>
using namespace std;
struct Node
{
int val;
Node* next;
Node(int x):val(x),next(NULL){}
};
void countNodesWithValue(Node* head,int x)
{
int count=0;
for(auto p=head;p;p=p->next)
if(p->val==x)
count++;
cout<<count;
}
int main()
{
Node* head = new Node(1);
head->next = new Node(2);
head->next->next = new Node(3);
head->next->next->next = new Node(2);
head->next->next->next->next = new Node(4);
int x=2;
countNodesWithValue(head,x);
return 0;
}
四、候选人投票
#include<bits/stdc++.h>
using namespace std;
const int N = 10, M = 10010;
struct Candidate
{
char name[20];
int s;
}can[N];
int main()
{
for(int i=0;i<N;i++)
{
cout<<"请输入候选人姓名"<<endl;
cin>>can[i].name;
}
for(int i=0;i<M;i++)
{
cout<<"请输入你要投票的对象"<<endl;
char str[20];
cin>>str;
for(Candidate& c : can)
{
if(!strcmp(c.name,str))
c.s++;
}
}
cout<<"投票结果如下"<<endl;
for(Candidate& c : can)
cout<<c.name<<' '<<c.s<<endl;
return 0;
}