#include <stdio.h>
int main()
{
int i, j, temp;
int a[100];
scanf_s("%s", &a[10],10);
for (j = 0; j < 9; j++)
{
for (i = 0; i < 9 - j; i++)
{
if (a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
} for (i = 0; i < 10; i++)
{
printf("%d,", a[i]);
}
return 0;
}
报错 :Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.
printf("%d,", a[i]);中多加了个分号,还有scanf_s("%d",&a[i])只能传形参不能输入10
修改如下,供参考:
#include <cstdio>
int main()
{
int i, j;
char a[11], temp; //修改
scanf_s("%s", a, 11); //scanf_s("%s", &a[10], 10);
for (j = 0; j < 9; j++)
{
for (i = 0; i < 9 - j; i++)
{
if (a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
for (i = 0; i < 10; i++)
{
printf("%c,", a[i]); //printf("%d,", a[i]); 修改
}
return 0;
}
#include <stdio.h>
int main() {
int i, j, temp;
int a[100];
for (i = 0; i < 10; i++) {
scanf_s("%d", &a[i]);
}
for (j = 0; j < 9; j++) {
for (i = 0; i < 9 - j; i++) {
if (a[i] > a[i + 1]) {
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
for (i = 0; i < 10; i++) {
printf("%d,", a[i]);
}
return 0;
}
你a[100]是整数型,但是你输入的时候用了%s
scanf_s("%s", &a[10],10);这里把 ,10 去掉