运行代码之后有输入但没有输出,有没有专家能够教一下?
#define _CRT_SECURE_NO_WARINGS
#include <iostream>
#include <algorithm>
using namespace std;
const int MAX_N = 100;
int n, a[MAX_N];
void solve()
{
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
int len = a[i] + a[j] + a[k];
int ma = max(a[i], max(a[j], a[k]));
int rest = len - ma;//其余两棍之和
if (ma < rest) {if (ma < rest) {
ans = max(ans, len);
}
}
}
}
printf("%d\n",&ans);
}
int main()
{
scanf_s("%d", &n);
for (int i = 0; i < n; i++)
{
scanf_s("%d", &a[i]);
}
solve();
}

你都没输出的操作
printf
unsigned evencnt=0,oddcnt=0;
int digit = get_num()%10;
switch(digit)
{
case 1,3,5,7,9:
oddcnt++;
break;
case 2,4,6,8,10;
evencnt++;
break;
}
上述代码错误在一个case只可以对于一个值,不可以一个对应多个值
更改后的代码如下所示:
unsigned evencnt=0,oddcnt=0;
int digit = get_num()%10;
switch(digit)
{
case 1:
case 3:
case 5:
case 7:
case 9:
oddcnt++;
break;
case 2:
case 4:
case 6:
case 8:
case 10:
evencnt++;
break;
}
unsigned ival=521, jval=1024,kval=1225;
unsigned bufsize;
unsigned swt = get_bufCnt();
switch(swt)
{
case ival:
bufsize = ival*sizeof(int);
break;
case jval:
bufsize = jval*sizeof(int);
break;
case kval:
bufsize = kval*sizeof(int);
break;
}
上述代码错误在使用变量作为case标签内容,C++规定,case标签的内容只能是整型常量表达式。修改后的程序如下所示:(只需将变量更改为常量即可用const)
const unsigned ival=521, jval=1024,kval=1225;
unsigned bufsize;
unsigned swt = get_bufCnt();
switch(swt)
{
case ival:
bufsize = ival*sizeof(int);
break;
case jval:
bufsize = jval*sizeof(int);
break;
case kval:
bufsize = kval*sizeof(int);
break;
}
根据提供的参考资料和代码,问题是在C++程序中有输入但没有输出结果,希望解决这个问题。我会给出解决方案。
针对问题中的C++程序代码,根据您的描述,问题可能出现在以下几个地方: 1. 输入问题:程序没有正确接收输入。 2. 计数问题:无法按照输入顺序输出只出现过一次的小写字母。
以下是对每个问题的解决方案建议:
getline
函数来接收输入。这个函数将整行输入读取为字符串,并存储在 string
类型的变量中。具体步骤如下:#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
cin.ignore(); // 忽略 cin 前面的换行符
for (int i = 0; i < n; i++)
{
string a;
getline(cin, a); // 使用 getline 读取整行输入
// ...其他代码
}
return 0;
}
w
的定义,使用 char
类型作为索引。如下所示:int w[26] = { 0 }; // 26 个英文字母的计数数组
然后,在输出部分的代码中,可以根据输入字符串的顺序输出结果。如下所示:
for (int j = 0; j < b; j++)
{
c = a[j];
if (c >= 'a' && c <= 'z')
{
w[c-'a']++;
}
}
for (int g = 0; g < 26; g++)
{
if (w[g] == 1)
{
cout << (char)(g + 'a');
}
}
通过以上的修改,您的程序应该能够按照输入的顺序输出只出现过一次的小写字母。
希望这些解决方案能够帮助您解决问题。如果您还有其他问题,请随时提问。
那你可以用cout来试一试